自分が今日初歩的なミスで時間食ったので、チェックする箇所をまとめておきたいなと思い記事にしました。微妙にややこしい話になるので、この記事を読んでメリットのありそうなのは下記の人だと思います。
この記事の対象者
- SSHで普段サーバー背tル族してる人
- WorkBenchがDBの制御ツールだと知ってる人
- WorkBenchでSSHする必要があるけどユーザー認証でエラーが出る人
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形式の鍵を作成する必要があります。
💡 MySQL WorkbenchのSSHトンネリング機能はOpenSSH形式の鍵(
.pem
とか)を要求する。だから.ppk
をそのままでは使えないよ!
PuTTYでppkからpemを作成できます。
秘密鍵ppkは PuTTYgenから生成されるので 秘密鍵ppkがあるということは、 PuTTYgenがインストールされてる可能性が高いですが、無ければダウンロードしてください。PuTTYは「ぷってぃ」って呼んだり「ぱてぃ」って呼んだりします。Wikipediaが「ぱてぃ」なのでそっちのが良いと思いますがどっちでもいいです。PuTTYはサーバーログオンツールですが、鍵生成でも利用できます。ただ、Wikipediaによると、自分が良く使うteratermよりこっちのがメジャーらしいですね。
🧓 今どきはVsCodeのターミナルでしょうかね。
それでは、ppkからpemを作成します。手順は下記の通り。
ppkからpem生成手順
- PuTTYgenにppkを読み込み
- 読み込んだppkをOpenSSH形式で出力
- 任意の名前.pemと名付けて保存
それでは雑なスクショを添えて、具体的な手順を解説をしていきます。
ppkファイルの読み込み
- Loadボタンをクリックするとどのキーを読み込むのか指定してと言われます
- ppkファイルを指定すれば完了です

OpenSSHに変換
ppkファイルを読み込んだら、Keyの部分に読み込んだppkの情報が出ます。
Export OpenSSH Keyを選択しましょう。

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

以上でーす。
FAQ
-
Putty使わずにやる方法もあるんじゃないの?
-
賢い人こんにちは。PowerShellでこのコマンド打てば出来ます。
ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa
-
.ppk
形式の秘密鍵って何ですか? -
.ppk
はPuTTY形式の秘密鍵です。WindowsユーザーがSSHクライアントとしてPuTTYを使う場合によく使われます。これはOpenSSH形式とは互換性がないため、他ツールではそのまま使えません。
-
なぜMySQL Workbenchは
.ppk
を受け付けないんですか? -
MySQL WorkbenchはOpenSSH形式(例:
.pem
)の鍵にしか対応していないためです。.ppk
はPuTTY独自の形式で、Workbenchはそれを解釈する機能を持っていません。
-
.ppk
を.pem
に変換する方法を教えてください -
PuTTYgenを使って変換できます。
Load
で.ppk
を読み込み、Conversions
>Export OpenSSH key
で.pem
形式として保存してください。
-
.pem
に変換する時、パスフレーズは必要ですか? -
任意です。セキュリティ強化のためには付けるのが望ましいですが、不要であれば入力せずに進めても構いません。
-
今はPuTTYより別のツールを使ったほうがいいですか?
-
個人の好みによりますが、近年はVSCode + Remote SSHやWindows Terminal + OpenSSHの利用が増えています。PuTTYは古き良き伝統派です。なんでもいいです。
コメントを残す