ブリッジサーバーを介してサーバーにトンネリングしようとしています。これまで、以下を使用してコマンドシェルで動作させることができました。
ssh -A -t [email protected] ssh -A [email protected]
しかし、それを私のファイルにパッケージ化しようとしましたが、~/.ssh/config
問題が発生しました。私は試した:
Host axp
User remote_userid
HostName remoteserver.com
IdentityFile ~/.ssh/id_rsa.eric
ProxyCommand ssh -A -t bridge_userid@bridge_userid.com ssh -A remote_userid@%h
しかし、これを行うと、次のエラーメッセージが表示されremoteserver.com
、原因が何であるかわかりません。
ksh: SSH-2.0-OpenSSH_6.8^M: 見つかりません
私はログイン時にremoteserver.com
私のシェルがあることを知っています/usr/bin/ksh
。
構成ファイルのsshコマンドにパスパラメータを追加しようとしましたが、違いはありませんでした。
どんなアイデアがありますか?
答え1
Jakujieの回答そうですね。ただし、OpenSSH以降は、より簡単な方法を7.3
使用できます。-J
ProxyJump
私のメモを見る:
OpenSSH7.3
以上
使用ProxyJump
。マニュアルに記載されているように:
-J [user@]host[:port]
まず、ジャンプホストへの SSH 接続を確立し、そこから最終宛先への TCP 転送を設定して宛先ホストに接続します。複数のジャンプをコンマで区切って指定できます。これはProxyJump設定ディレクティブを指定するショートカットです。
ProxyJump~/.ssh/config
の例
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2_behind_server1
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
ProxyJump server1
~とつながる
ssh server2_behind_server1 -v
-v
詳細出力の追加
ProxyJump-J
コマンドラインの例
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
~とつながる
ssh server2 -J server1 -v
または使用-o
ssh server2 -o 'ProxyJump server1' -v
OpenSSH5.4
以上
ProxyCommand
そして使用-W
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh server1 -W %h:%p
~とつながる
ssh server2 -v
または使用-o
ssh server2 -o 'ProxyCommand ssh server1 -W %h:%p' -v
OpenSSHは次のとおりです5.4
~/.ssh/config
Host server1
Hostname server1.example.com
IdentityFile ~/.ssh/id_rsa
Host server2
Hostname server2.example.com
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh server1 nc %h %p 2> /dev/null
とつながる:
ssh server2 -v
または使用-o
ssh server2 -o 'ProxyCommand ssh server1 nc %h %p 2> /dev/null' -v
源泉
-J
に追加するオープンSSH 7.3
- ssh(1): 1 つ以上の SSH 要塞または「ジャンプホスト」を介した単純化された間接アクセスを許可するには、ProxyJump オプションと対応する -J コマンドラインフラグを追加します。
-W
に追加するオープンSSH 5.4
- ssh(1) に "netcat モード" を追加しました: "ssh -W ホスト:ポート ..." これは、クライアントの stdio をサーバーの単一ポート転送に接続します。たとえば、sshをProxyCommandとして使用して、中間サーバーを介して接続をルーティングできます。 bz#1618
答え2
netcat
足の上にある必要はありません。 DanSutがコメントで提案したように、コマンドラインオプションを使用することができ、ssh -W
この設定は適切です。
Host axp
User remote_userid
HostName remoteserver.com
IdentityFile ~/.ssh/id_rsa.eric
ProxyCommand ssh -AW %h:%p bridge_userid@bridge_userid.com