多段SSH環境を一度でログインする

大きなネットワークだと、その構成上、あるマシンからあるマシンにSSHログインするときに中継しないといけない踏み台マシンが必要な場合があるが、いちいち2回SSHログインするのは面倒だ。これを一度でログインする方法を紹介しよう。以下では手元のマシンをbase、踏み台マシンをgateway、最終的にログインしたいリモート・マシンをleafとした時の例である。

踏み台がLinuxで、クライアントが OpenSSH for Linux / Mac の場合

踏み台がLinuxで、クライアントにはOpenSSHを使う場合はncを併用する。以下は Oracle Linux 6.1 での方法だが、Red Hat Enterprise Linux (RHEL) / CentOS / Scientifc Linux (SL) でも同様だろう。まずはgatewayにncをインストールする。

以下のようなファイルをbaseに用意する。baseとgatewayのユーザー名が異なる場合は ssh foo@gateway と設定しよう。


[text title=”~/.ssh/config”]Host leaf
ProxyCommand ssh gateway nc %h %p'[/text]

あとは何も気にせずにSSHすれば自動的に多段SSHしてログインできる。

gatewayのroot権限を持っておらず、ncのインストールを依頼することが難しい場合は、以下のconnectをコンパイルする方法を試してみよう。

踏み台がMacで、クライアントが OpenSSH for Linux / Mac の場合

踏み台がMacで、クライアントにはOpenSSHを使う場合はconnectを併用する。以下は Mac OS X 10.6 Snow Leopard での方法だが、ほかのバージョンでも同様だろう。

以下のようなファイルをbaseに用意する。baseとgatewayのユーザー名が異なる場合は ssh foo@gateway と設定しよう。

[text title=”~/.ssh/config”]Host leaf
ProxyCommand ssh gateway connect %h %p'[/text]

あとは何も気にせずにSSHすれば自動的に多段SSHしてログインできる。

クライアントが PuTTY for Windows の場合

クライアントが PuTTY for Windows 0.60 の場合、踏み台側の設定は必要なく、PuTTYの設定のみ行なう。まず「ホスト名」にgatewayと入力する。

カテゴリ「接続 > データ」の「自動ログインのユーザ名」にgatewayのユーザー名を入力する。

カテゴリ「接続 > SSH」の「リモートコマンド」に以下のように入力する。gatewayとleafのユーザー名が異なる場合は ssh foo@leaf と設定しよう。

コメントを残す