自分が今日初歩的なミスで時間食ったので、チェックする箇所をまとめておきたいなと思い記事にしました。微妙にややこしい話になるので、この記事を読んでメリットのありそうなのは下記の人だと思います。
- SSHで普段サーバー接続している人
- WorkBenchがDBの制御ツールだと知っている人
- WorkBenchでSSHする必要があるけどユーザ認証でエラー出る人
INDEX
SSH接続用の設定はしていますか
WorkBenchはリモート接続の方法が3種類あります。
・Standard (TCP/IP) :ホストの3306ポートに直接繋ぎに行きます。あんまりやりません。
・Local Socket /Pipe : Unixソケットを使って繋ぎに行きます。
・Standard (TCP/IP) over SSH : SSHを利用してホストに繋いでからDB接続します。
今回の記事はStandard(TCP/IP) over SSHで繋いだ時にユーザ認証が弾かれたからなんとかしようという記事です。

WorkBenchに設定したSSHの秘密鍵はppkですか?
windowsでSSH接続するとき、秘密鍵の形式がppkであることって良くあると思います。しかし、WorkBenchはOpenSSH形式の秘密鍵でないと接続ができないんです。暗号解釈する機能がないからでしょうか。ちょっと分かりませんけど、とりあえずpem形式の鍵を作成する必要があります。
PuTTYでppkからpemを作成できます。
秘密鍵ppkは PuTTYgenから生成されるので 秘密鍵ppkがあるということは、 PuTTYgenがインストールされてる可能性が高いですが、無ければダウンロードしてください。PuTTYは「ぷってぃ」って呼んだり「ぱてぃ」って呼んだりします。Wikipediaが「ぱてぃ」なのでそっちのが良いと思います。PuTTYはサーバーログオンツールですが、自分は鍵生成でしか利用しないです。ただ、Wikipediaによると、自分が良く使うteratermよりこっちのがメジャーらしいですね。
それでは、ppkからpemを作成します。手順は下記の通り。
- PuTTYgenにppkを読み込み
- 読み込んだppkをOpenSSH形式で出力
- 任意の名前.pemと名付けて保存
ppkファイルの読み込み

OpenSSHに変換
読み込んだら、Keyの部分に読み込んだppkの情報が出ます。

Key passphraseを入力することで、パスワードを付けることができるので、付けておきましょう。
拡張子をpemにして保存する
Export Open SSH keyを押下すると、 ダイアログが出るので、任意の名前.pemでファイルを保存します。Key passphraseを入力していないと警告が出ます。

以上でーす。