我想从一个终端控制多个 ssh 连接。例如,我ifconfig
在主终端中输入,所有其他 ssh 连接都会运行ifconfig
。这就是 Windows 上 PuttyCM 提供的功能例如。
这可能是一个非常简单的问题,但我没能找到这样的 ssh 连接管理器。编码不会太难,但它肯定已经存在了。你能给点提示吗?
答案1
集群 SSH
集群 SSH 用于在单独的终端窗口中启动多个 SSH 连接,使用一个公共的输入框。您在输入框中输入内容,按键将发送到所有连接的终端。
sudo apt-get install clusterssh
然后运行cssh
:
cssh host1 host2 ...
使用具有广播功能的终端仿真器
例如,Terminator 是一个终端仿真器,您可以在其中向一组终端广播击键:
根据您建立的连接数,Cluster SSH 可能是更好的选择。但是,它用于xterm
终端仿真器,这可能不是您习惯的。但是,使用 开始使用大量连接比在 Terminator 中创建大量拆分并对其进行分组要容易得多cssh
。例如,这就是cssh osl-{01..95}
我所得到的:
终端窗口都调整了大小,并进行了很好的平铺。间隙是由于连接失败而关闭的窗口。
答案2
有很多选项可以实现你想要的。我最喜欢的是pssh
(并行 SSH)。它可以在多个主机上并行运行命令,并且有多种选项。
您可以通过以下方式安装:
sudo apt-get install pssh
pssh
有一些额外的优点,例如它将与二进制文件一起安装parallel-scp
,parallel-rsync
正如其名称所暗示的那样。
下面是在两个主机上whoami
以用户身份运行命令的示例:foobar
pssh
parallel-ssh -iAH "host_1 host_2" -l foobar "whoami"
检查man pssh
或这里获得更多想法。