今回は、sshコマンドを使用してリモートサーバーにアクセスする方法について整理したいと思います。
■基本的な使い方
ssh -l ユーザー名 -p ポート番号 IPアドレス
■多段SSH接続(2段)
Local⇒ServerA⇒ServerB
上記の様にServerBに接続するためには、ServerBを経由しなければないけない場合、通常は、LocalからServerAにssh接続して、ServerAからServerBにssh接続する必要があります。
これを、事前に設定しておくことによって、1つのコマンドでLocalからServerBへの接続を可能にすることができます。
下記、手順から、、
①SSHの設定
vim ~/.ssh/config
②SSHの設定を作成・書き込み
=============~/.ssh/config========================
Host ServerA # コマンドとして使用する名前 (任意の名称を設定できる)
User user_ServerA # ServerAのOSのユーザー名
HostName 123.456.78.90 # ServerAのドメイン名またはIP
Port 1234 # ServerAのポート名
IdentityFile ~/.ssh/ServerA.rda # ServerAの秘密鍵のファイルへのパス
Host ServerB # コマンドとして使用する名前 (任意の名称を設定できる)
User user_ServerB # ServerBのOSのユーザー名
HostName 098.765.43.21 # ServerBのドメイン名またはIP
Port 4321 # ServerBのポート名
IdentityFile ~/.ssh/ServerB.rda # ServerBの秘密鍵のファイルへのパス
ProxyCommand ssh ServerA -W %h:%p #
ServerBへの接続に利用するコマンドを指定
===========================================
③以上より、LocalよりServerAを経由してServerBへ接続
ssh ServerB
※註
・①の「
~/.ssh/config」ファイルは無ければファイルを作成する。
・「~/.ssh/ 」はSSHの設定ファイルを置く場所です。
・Portは、ポートが通常の22の場合は、設定の必要はありません。
・秘密鍵を用いないでログインできるサーバーにはIdentityFileを設定する必要はありません。
・なお、ProxyCommandのProxyとは、
プロキシ(Proxy)とは「代理」の意味である。 インターネット関連で用いられる場合は、特に内部ネットワークからインターネット接続を行う際、高速なアクセスや安全な通信などを確保するための中継サーバ「プロキシサーバ」を指す。 プロキシはクライアントとサーバの間に存在し、情報元のサーバに対してはクライアントの情報を受け取る、クライアントに対してはサーバの働きをする(HTTPプロキシの場合)。 なお、プロキシは「プロキシー」「プロクシ」「プロクシー」「串」とも呼ばれる。
『プロキシ - Wikipedia』
以上です。
【参考サイト】
『ssh - リモートマシンにSSHでログイン - Linuxコマンド』
『多段ssh設定のまとめ』
『多段SSHやポートフォワーディングを '.ssh/conig' に書く』
『2段階SSH接続を,ProxyCommandを使って一度のsshコマンドで接続する』