如何从远程服务器运行多个ssh会话
问题描述:
我已经在Azure上的VNET中部署了一个虚拟机拓扑。有一个跳箱可以访问所有这些机器,并且是VNET的一部分。这个跳箱提供了大约25台机器。如何从远程服务器运行多个ssh会话
我希望能够通过此跳转框同时在所有VM上运行命令和脚本。
我安装CSSH,它显示了以下错误:
Can't find DISPLAY -- guessing unix:0' at /usr/share/perl5/App/ClusterSSH.pm line 1981.
Can't connect to display unix:0': No such file or directory at /usr/share/perl5/X11/Protocol.pm line 2264.
答
看到这个答案在这里:https://unix.stackexchange.com/a/76777
本质:
设置公共密钥认证的JumpBox和你的服务器之间。
for host in $(cat hosts.txt); do ssh "$host" "$command" > "output.$host" ; done
pssh
可能是这个工作的更好的工具: https://www.linux.com/news/parallel-ssh-execution-and-single-shell-control-them-all
cssh
也应该工作,干脆不要做X11的东西吧,或者确保您有X11转发启用。其实,我在说谎,我不知道它是否可以在没有xterm的情况下运行。