制御ソケットを使用して中間ホストを経由する SSH

制御ソケットを使用して中間ホストを経由する SSH

マシン 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

この方法では、パスワードを入力する必要はありません。

関連情報