Vagrantで構築したVMのMySQLにSequel Proで接続できない時の対応

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がでたら

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

17 + four =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください