如何通过多个ssh运行本地bash脚本

如何通过多个ssh运行本地bash脚本

我有一个本地 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

相关内容