2016-09-18 88 views
-1

我已经在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.

回答

0

看到这个答案在这里:https://unix.stackexchange.com/a/76777

本质:

  1. 设置公共密钥认证的JumpBox和你的服务器之间。

  2. 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的情况下运行。