以前、Macで踏み台を使って各種サーバにアクセスするやり方をメモ的に書いたのですが、昨今のセキュリティ対策で、踏み台が二段階認証が必要になるケースが増えているので、そのやり方をメモしておきます。
また、Macだとコマンドラインから簡単にポートフォワーディングができるのですが、Windowsだとちょっとやり方が違うので、そのメモも。
まず、Macで二段階認証付きのサーバにポートフォワードを行うのは単純です。
踏み台サーバ:fumidai.hoge.com(アカウント : humidai_user)
目的のサーバ:mokuteki_server(踏み台サーバ上で解決できるサーバ名、アカウント : mokuteki_user)
コマンドラインで、下記を実行します(Macでポート2001を使っていないのが前提)
$ ssh -L 2001:mokuteki_server:22 humidai_user@fumidai.hoge.com
これで二段階認証を行い、その後、例えばFileZillaからは、localhost:2001に接続します。
SSHのトンネルを指定してMySQLに接続することができるSequel ProというMySQL管理ソフトがあるのですが、そのままでは二段階認証が必要なサーバをトンネルとして設定できません。その場合、上記のポートフォワードを設定してから、下記のように設定します。
MySQLホストのlocalhostは、mokuteki_serverから見た場合のMySQLのサーバ名で、SSHホストのlocalhostは、Mac自身になります。Mac自身と、そこからポートフォワードされたfumidai_serverをトンネルとして、MySQLサーバに接続している状態です。
これを、Windowsで行うには、puttyを使用します。
SessionのHost Nameには、踏み台のユーザー名とホスト名を入れます。
Connection>SSH>Tunnelでは、まずSoure portにローカルで使っていないポート(この場合は2001)を入れます。
Destinationには、目的のサーバとなるmokuteki_serverとsshポートである22を入れて「Add」ボタンを押します。
これで接続して認証を行えば、ポートフォワードが形成されるので、踏み台経由でMySQLに接続が可能になります。
Excelのインポートやデータの同期が凄まじく便利なNavicatから接続するには、下記のようにします。
(本当はNaviCatに二段階認証のsshトンネルに対応して欲しいのですが・・)
GeneralではMySQLの情報を入れます(localhostは、mokuteki_serverから見たMySQLサーバ名なので、適宜変更)
SSHタブでは、localhost(Windowsマシン自体)のポート2001(先ほど設定したポート)を入力します。
これで、SSHトンネルの設定ができるけれども、二段階認証に対応していないソフトでも接続できるようになります。
スポンサーリンク