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