マシン A からマシン B を経由してマシン C に SSH 接続したいです。通常は次のようにします。
A$ ssh user@B
B$ ssh user@C
パスワードを 2 回とも入力する必要があります (公開キーは使用できません)。制御ソケットを設定して、両方のパスワードを入力した後、ソケットを使用して C に ssh できるようにしたいと思います。次のように入力します。
A$ ssh -S socket C
これは可能ですか?
答え1
B をジャンプ ホストとして使用できます。
ssh -J user@B user@C
ユーザー名またはホスト名が長い場合は、次の場所に追加できます~/.ssh/config
。
Host hostB
HostName some-long-hostname-of-B-or-its-ip
User username-on-B
Host hostC
HostName same-here-for-C
User username-on-C
次に、次のように ssh を実行します。
ssh -J hostB hostC
ジャンプは次のように設定することもできますssh hostC
:
Host hostC
HostName same-here-for-C
User username-on-C
ProxyJump hostB
答え2
gronostaj さんの回答を補足すると、-J を使用してソケットを作成する方法は次のとおりです。
$ ssh -M -S socket -J user@B user@C -fN
次に、ソケットを使用して C にログインします。
$ ssh -S socket C
この方法では、パスワードを入力する必要はありません。