このガイドでは、SSH ProxyCommand
の使用など、sshクライアントが提供するオプションを使用してプロセスを簡素化する方法を学習します。 コマンド。
関連コンテンツ:
- SSH –sshキーの生成と操作
SSHシナリオ
これがsshの設定方法です。
+--------------+ +------------+ +-----------+
| Local machine| -> | JumpServer | -> | Dbserver |
+--------------+ +------------+ +-----------+
DBサーバーにアクセスするには、中間サーバーであるJumpServerにログインする必要があります。ジャンプサーバーへの最初のログイン
ssh [email protected]
次に、ジャンプサーバーからdbサーバーにログインできます
ssh [email protected]
最新のsshクライアントに-Jオプションを使用する
最新のsshクライアントの場合、-Jオプションを使用すると、ジャンプホストとして使用するホストを指定できます。これがフォーマットです
ssh -J [email protected] [email protected]
これは、パブリックジャンプサーバーを使用してリモートに接続する方法です
ssh -J [email protected] [email protected]
sshキーを指定する必要がある場合は、次の形式を使用してください:
ssh -J [email protected] [email protected] -i ~/.ssh/id_server_key
-Jオプションが使用できない場合のProxyCommandの使用
古いバージョンのopensshでは、 -J 利用できません。したがって、次の構文を使用します。
ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected]
これが私のローカルマシンでの使用方法です
ssh -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected] -i ~/.ssh/id_rsa
-Wオプションをサポートしていない最も古いクライアントの場合
この場合、 ssh -tt 指図。 2つのsshコマンドを入力する代わりに、次のオールインワンコマンドを入力できます。これは、ジャンプホストとしてjumpserverと呼ばれるファイアウォールを介してリモートdbserverに接続する場合に便利です。
ssh -tt [email protected] ssh -tt [email protected]
使用法:
ssh -tt [email protected] ssh -tt [email protected] -i ~/.ssh/id_rsa
場所:
- -t sshコマンドに渡されたオプションは、疑似tty割り当てを強制します。これは、リモートマシン上で任意の画面ベースのプログラムを実行するために使用できます。複数の-tt オプションは、sshにローカルttyがない場合でも、ttyの割り当てを強制します。
構成を〜/ .ssh/configファイルに保存する
構成オプションは、~/.ssh/config
で定義できます。 ファイル。構成は次のようになります。ProxyCommandを指定します:
Host dbserver
Hostname 10.70.1.190
User ubuntu
ProxyCommand ssh [email protected] -W %h:%p
IdentityFile ~/.ssh/id_rsa
ProxyJumpを使用することもできます
Host dbserver
Hostname 10.70.1.190
User ubuntu
ProxyJump [email protected]
IdentityFile ~/.ssh/id_rsa
複数のジャンプホストを再帰的にチェーンすることもできます:
Host jumpsrver
Hostname 13.36.234.247
User rocky
Host dbserver2
Hostname 10.70.1.190
User ubuntu
ProxyCommand ssh -W %h:%p jumpsrver
IdentityFile ~/.ssh/id_rsa
Host dbserver3
Hostname 10.70.1.190
User ubuntu
ProxyCommand ssh -W %h:%p dbserver2
IdentityFile ~/.ssh/id_rsa
これを行うと、他のホストを介してプロキシされます
ssh dbserver3