1時間くらい調べまくっていた。。。
何とか対応できたのでメモ。
なお、ssh端末はMacを使用している。
設定内容
Sequel Proには下記のように設定を行なっていた。
MySQLホスト:127.0.0.1
ユーザー名:root
パスワード:password
データベース:test_db
ポート:3306
sshホスト:192.168.100.200
sshユーザー:vagrant
sshパスワード:vagrant
sshポート:22
エラー内容
Sequel Proで接続すると「SSH トンネルがリモートホストで認証できませんでした。パスワードをチェックしてアクセス権があるか確認してください。」と表示される。
対応方法
普段は「vagrant ssh」コマンドでVMにssh接続するが、そもそもIPを指定してssh接続できるかを試した。
単にIPのみ指定すると下記のようにPermissionのエラーが表示される。
$ ssh vagrant@192.168.100.200
vagrant@192.168.100.200: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
サーバ側の鍵ファイルやクライアントの鍵ファイルのパーミッションも確認したが問題ないようだった。
先ほどのIP指定だけではうまく行かなかったので、改めて下記コマンドで接続情報を確認した。
$ vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/hoge/.vagrant.d/boxes/centos73/0/virtualbox/vagrant_private_key
IdentitiesOnly yes
LogLevel FATAL
ここの「IdentityFile」というのがvagrantユーザーで接続する時の秘密鍵になっている。
下記のコマンドで鍵ファイルを指定するとsshで接続することができた。
$ ssh -i ~/.vagrant.d/boxes/centos73/0/virtualbox/vagrant_private_key vagrant@192.168.100.200
なので、Sequel Proでも「sshパスワード」の項目でこの鍵ファイルを指定することで接続ができるようになった。
参考
SSH接続エラー回避方法:.ssh/known_hostsから特定のホストを削除する/削除しないで対処する3つの方法
(俺得)MySQLに、クライアントでリモート接続する時の設定
SSHでPermission deniedがでたら