我可以使用跳转主机连接到服务器。我正在尝试编写一个 shell 脚本来登录到多个服务器并检查磁盘空间,如果空间超过 90%,则发送电子邮件。我的问题是,在跳转主机中我无法创建脚本,访问受限。我正在尝试在其中一台服务器中创建 shell 脚本。我找到了一个检查空间的脚本,我的问题是该脚本运行,当它尝试登录到第一台服务器时,登录失败,因为我已经登录了一台服务器。我想做的是在登录到一台服务器时运行该脚本,该脚本应该在后台运行并检查所有服务器。
答案1
您可以在启动连接的主机上ProxyCommand
设置ssh 代理。~/.ssh/config
然后你只需提供你想在最终主机上执行的操作,甚至无需担心跳转主机上的任何操作
您可以在 ssh 配置中像这样设置
Host 10.0.4.*
ProxyCommand ssh -q [email protected] nc -q0 %h %p
然后,无论何时你通过 ssh 连接到任何 10.0.4.* 主机,你都会毫不费力地通过跳转主机。正如你所见,它通过设置netcat
到最终主机的代理来工作
和
ssh 10.0.4.10 '/usr/path/to/check_command'
在初始主机上将为您提供来自最终主机的 check_disk 输出,如下图所示
| 初始主机 | --- ssh 最终主机 ---> | jumphost | --- netcat 代理 ---> | 最终主机 |
您可以在此处详细了解
https://www.cyberciti.biz/faq/linux-unix-ssh-proxycommand-passing-through-one-host-gateway-server/