複数のSSHを介してローカルbashスクリプトを実行する方法

複数のSSHを介してローカルbashスクリプトを実行する方法

2番目のSSHサーバーで実行したいローカルbashスクリプトがあります。

ステップは次のとおりです。
user$- ローカルコンピュータ
user$ ssh -A ssh- 最初のSSHにログイン
user@ssh01:~$ ssh server2- 2番目のSSHにログイン
user@server2:~$- 2番目のSSHサーバーにログイン

以下を使用して、ローカルコンピュータの最初のSSHサーバーでbashスクリプトを実行できます。
user$ ssh -A ssh 'bash -s' < script

ただし、2番目のSSHサーバーではこれを行う方法がわかりません。
最初のSSHでこれを実行しようとするとエラーが発生します。
user@ssh01:~$ ssh server2 'bash -s' < script
-bash: script: No such file or directory

アドバイスしてください

答え1

ssh -At ssh 'ssh -At server2 -- bash -s' < script

その後、2番目のホップでSSHが接続され、そこでスクリプトが実行されます。

気づく:

  • 2番目のsshコマンドを引用符で囲みます。
  • 私は-t端末を2つのSSHセッションに転送するために使用します。

ここで説明されている方法を使用してSSH経由で接続することもできます。まっすぐ2番目のジャンプ:

https://www.cyberciti.biz/faq/linux-unix-ssh-proxycommand-passing-through-one-host-gateway-server/

要約すると、以下を追加します~/.ssh/config

Host server2
    HostName server2
    User username
    ProxyCommand ssh username@jumphost nc %h %p

関連情報