我有一个本地 bash 脚本,我想在第二个 ssh 服务器上运行它。
步骤如下:
user$
- 本地计算机
user$ ssh -A ssh
- 登录第一个 ssh
user@ssh01:~$ ssh server2
- 登录第二个 ssh
user@server2:~$
- 登录第二个 ssh 服务器
我可以使用以下命令在本地计算机上的第一个 ssh 服务器上运行 bash 脚本:
user$ ssh -A ssh 'bash -s' < script
但是,我不知道如何在第二个 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
这将 ssh 到第二跳并在那里运行脚本。
注意:
- 我将第二个 ssh 命令括在引号中。
- 我用来
-t
将终端传递给两个 ssh 会话。
您还可以使用此处描述的方法进行 ssh直接地到第二跳:
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