前言

终端登录管理方案非常成熟除了耳熟能详的跨平台付费方案 SeureCRT,Windows 有 Xshell,macOS 有 iTerm2,不过在 macOS 下想用到类似 SecureCRT 和 Xshell 一样的 Send to all 功能可能就没有这么方便了,而 csshX 正好可以满足批量管理操作的需求

使用 csshX 同步管理多个 SSH 会话

更新历史

2020 年 10 月 20 日 - 更新 csshx 在 macOS Catalina 的使用
2018 年 11 月 26 日 - 初稿

阅读原文 - https://wsgzao.github.io/post/csshx/

扩展阅读

csshx - https://github.com/brockgr/csshx


csshx 简介

As csshX is a command line tool, no special installation is needed. It maybe copied into a directory in your path, (e.g. /usr/local/bin) for your convenience.

The software has been tested on Mac OS X 10.5, 10.6 and 10.7 with the default Perl installation - no additional Perl modules are required.

DOCUMENTATION:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
The documentation for csshX is self contained. Please run:

csshX --man

NAME
csshX - Cluster SSH tool using Mac OS X Terminal.app

SYNOPSIS
csshX [--login username] [--config filename] [ [user@]host1[:port]
[[user@]host2[:port]] .. ]

csshX [-h | -m | -v ]

DESCRIPTION
csshX is a tool to allow simultaneous control of multiple ssh sessions.
host1, host2, etc. are either remote hostnames or remote cluster names.
csshX will attempt to create an ssh session to each remote host in
separate Terminal.app windows. A master window will also be created.
All keyboard input in the master will be sent to all the slave windows.

To specify the username for each host, the hostname can be prepended by
user@. Similarly, appending :port will set the port to ssh to.

You can also use hostname ranges, to specify many hosts.

OPTIONS
-l username, --login username
Remote user to authenticate as for all hosts. This is overridden by
user@.

-c configfile, --config configfile
Alternative config file to use

-h, --help
Quick summary of program usage

-m, --man
Full program man page

使用 brew 安装 csshx

Name: csshx
Use: Cluster ssh tool for Terminal.app
URL: https://github.com/brockgr/csshx

1
2
3
4
# 安装 homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
# 安装 csshx
brew install csshx

csshx 使用

当我们管理数十台或更多 Linux 服务器的时候,往往需要在每台服务器上执行同样的命令,比如我们想一次查看 10 台服务器(node)上系统负载情况,或者想知道哪台服务器有剩余内存可以分给新客户,又或者想执行 df 命令看看哪个服务器上还有多的硬盘空间等等,除了可以用脚本或工具统一收集这些信息外,我们还可以考虑使用一些同步管理多个 SSH 会话的小工具来帮助管理多台服务器,节省时间提高管理效率。在 Linux 上可以用 pdsh、ClusterSSH 和 mussh;在 Mac 上可以用 csshX.

1
2
3
4
5
6
7
8
9
10
11
# 使用 csshX 很简单,如果要同时 ssh 到 4 个服务器可以直接传递 IP
csshX 192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.4

# 也可以把这些要 ssh 管理的 IP 写到一个文件里,然后加载这个文件,[user@]host1[:port]
vi hosts
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4

csshX --hosts hosts

其他问题

csshx is not working in New Mac OS Release MacOS Mojave

https://github.com/brockgr/csshx/issues/94

brew install parera10/csshx/csshx
1
2
3
4
5
6
# If you already have installed it:
brew remove csshx
# Then add the tap:
brew tap parera10/csshx
# Then install it again:
brew install parera10/csshx/csshx
文章目录
  1. 1. 前言
  2. 2. 更新历史
  3. 3. csshx 简介
  4. 4. 使用 brew 安装 csshx
  5. 5. csshx 使用
  6. 6. 其他问题