メシのタネ

メシのタネになる、Laravelや設計思想の技術配信サイト


WorkBenchでDBサーバーにSSH接続できないって?

, , ,

  1. DB
  2. WorkBenchでDBサーバーにSSH接続できないって?

自分が今日初歩的なミスで時間食ったので、チェックする箇所をまとめておきたいなと思い記事にしました。微妙にややこしい話になるので、この記事を読んでメリットのありそうなのは下記の人だと思います。

この記事の対象者

  • 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で繋いだ時にユーザ認証が弾かれたからなんとかしたいという記事です。

Connection Method 一番したの項目です。キャプチャのような入力項目になりますよ。

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ファイルを指定すれば完了です
Loadをクリックして、ppkファイルを選択します。

OpenSSHに変換

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

ConversionsからExportSSH Keyを選択します。

👉️ Key passphraseを入力することで、パスワードを付けることができるので、付けておきましょう。

拡張子をpemにして保存する

Export Open SSH keyを押下すると、 ダイアログが出るので、任意の名前.pemでファイルを保存します。Key passphraseを入力していないと警告が出ます。必要ないなら無視しましょう。

拡張子を.pemにしてファイルを保存

以上でーす。

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 SSHWindows Terminal + OpenSSHの利用が増えています。PuTTYは古き良き伝統派です。なんでもいいです。


コメントを残す

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.