是否有一个可以将命令复制到多个终端的 SSH 客户端?

是否有一个可以将命令复制到多个终端的 SSH 客户端?

我想从一个终端控制多个 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-scpparallel-rsync正如其名称所暗示的那样。

下面是在两个主机上whoami以用户身份运行命令的示例:foobarpssh

parallel-ssh -iAH "host_1 host_2" -l foobar "whoami"

检查man pssh这里获得更多想法。

相关内容