私のジャンプサーバーとエンドホストの両方がデフォルトではなく22ポートで実行されています。
~によるとhttps://wiki.gentoo.org/wiki/SSH_jump_host
私はssh -J user1@host1:port1 user2@host2 -p port2
どちらかを試しましたssh -J user1@host1:port1 user2@host2:port2
ジャンプサーバーのパスワードを入力するように求められ、すべてエラーで失敗します。
channel 0: open failed: administratively prohibited: port forwarding is disabled
stdio forwarding failed
kex_exchange_identification: Connection closed by remote host
Connection closed by UNKNOWN port 65535
では、どのように機能させることができますか?
答え1
マニュアルページでは、このオプションの形式があるため正しく-J
表示されます。-J [user@]host[:port]
-J user1@host1:port1
-J [user@]host[:port]
まず、ジャンプホストへのSSH接続を確立し、そこから最終宛先へのTCP転送を確立して宛先ホストに接続します。複数のジャンプをコンマで区切って指定できます。これはProxyJump設定ディレクティブを指定するショートカットです。
ちなみに、エラー内容として見てみると、問題はポート仕様ではなく、中間-J
ホストがポート転送を許可せず、ポート転送を要求しているようです。
これを変更することはできませんが、ジャンプホストを信頼している場合は、ジャンプホストへの接続を確立し、そこから別のSSHクライアントを実行して最終ターゲットホストへの接続を開くことができます。
ssh user1@host1:port1 'ssh user2@host2:port2'
(またはと一緒にssh -t
)