サーバーを踏み台にして別のサーバーに接続する方法
仕事でサーバーの管理をすることがあるのですが、直接ログインしたいのにIPアドレスでアクセス制限をかけられているため、一旦別のサーバーにログインした後、そこを経由して目的のサーバーに接続しなければならないという事態に遭遇してしまいました。
図にするとこんな感じです。自分のマシンからサーバーAにアクセスしたいのですが、一旦サーバーBを踏み台にしてアクセスするということをやっています。
自分のマシン → | サーバーB → | サーバーA |
本当はこんなふうに、直接アクセスするのが理想です。
自分のマシン → | サーバーA |
一旦別サーバーを経由するというのがとても面倒です。
どうしたものかな?と思っていたら、実はとても便利な方法があることを知りました。それは、TeratermのSSHのポート転送を使うという方法です。
SSHのポート転送機能なら、一度設定するだけで直接アクセスできるようになる
TeratermのSSHポート転送機能を使うと、サーバーAのポートをローカルマシンに直接転送することができます。その結果、ローカルマシンがまるでサーバーAに直接つながっているようになり、サーバーBを経由することなくSSHやsftpなどの操作で直接サーバーAにアクセスすることができるようになります。
そのやり方をご紹介します。
1.まず、Teratermを起動しサーバーBに接続します。
2.メニュー→設定から、SSH転送を選択します。
3.追加ボタンを押します。
4.ローカルのポートに適当な数字を入力します。この場合は9999としています。リモート側のホストは、サーバーAのアドレスもしくはIPアドレスを入力します。ポートの部分には、サーバーAのSSHポート(22番)を入力します。
5.OKボタンを押してSSHポート転送設定ウィンドウを閉じます。この接続は作業が完了するまで保持しておきますので、メインの操作ウィンドウは閉じないでください。
6.次に新しくTeratermを起動します。
ホスト名にローカルアドレス(127.0.0.1)を入力します。ポート番号は4.で設定した9999の値を入力します。
7.接続すると認証ウィンドウが開きます。サーバーAのユーザー名とパスワードを入力してください。
以上で、サーバーAに直接アクセスできるようになりました。5までの操作を行ってその接続を保持している間は、サーバーAとの接続が保たれています。
Teratermを新しく起動して6.のように入力すれば直接サーバーAにアクセスできますし、sftpのクライアントソフトを立ち上げて、直接サーバーAにファイルを転送したりできます。
これでだいぶ便利になりました。
このポート転送を応用すると、ずいぶん便利な使いかたができるようになります。たとえば、アクセス制限があるサーバーでもSSHポート転送でデータベースに楽々接続のページでも書いているように、本来はポートが閉じていて接続できないようなデータベースにもアクセスできるようになったりします。
いろいろ便利になりますので、是非試してみてください。