首先是通配符的使用, 一般规范的环境中, 机器名通常是有规律的, 并且端口理论上也是 一致的, 同时, 也会帮你提前配置好密钥, 你所做的, 就是在需要的时候连接这些服务器.

假设有如下这么几台机器(以下数据全部为胡诌, 如有雷同, 请及时更换):

机器名 IP 端口 用户名 密钥
gg-android01-node.xx.yy.zz 48.132.144.01 22000 corvo ~/.ssh/id_rsa_test
gg-android02-node.xx.yy.zz 48.132.144.02 22000 corvo ~/.ssh/id_rsa_test
gg-android03-node.xx.yy.zz 48.132.144.03 22000 corvo ~/.ssh/id_rsa_test
gg-android04-node.xx.yy.zz 48.132.144.04 22000 corvo ~/.ssh/id_rsa_test
ms-vscode01-master.xx.yy.zz 42.188.144.01 22000 corvo ~/.ssh/id_rsa_test
ms-vscode02-master.xx.yy.zz 42.188.144.02 22000 corvo ~/.ssh/id_rsa_test
ms-vscode03-master.xx.yy.zz 42.188.144.03 22000 corvo ~/.ssh/id_rsa_test
fb-react01-teer.xx.yy.zz 59.143.138.01 22000 corvo ~/.ssh/id_rsa_test
fb-react02-teer.xx.yy.zz 59.143.138.02 22000 corvo ~/.ssh/id_rsa_test
fb-react03-teer.xx.yy.zz 59.143.138.03 22000 corvo ~/.ssh/id_rsa_test

简单的config文件适用于机器不多的场合, 当我的机器超过了10台以后, config文件就会 呈现这样一种状态(假如你还是有些简写):

1
2
3
4
5
6
7
8
9
10
11
12
13
Host android01
User corvo
HostName gg-android01-node.xx.yy.zz
Port 22000
IdentityFile ~/.ssh/id_rsa_test

Host android02
User corvo
HostName gg-android02-node.xx.yy.zz
Port 22000
IdentityFile ~/.ssh/id_rsa_test

...

其实这样的组织结构挺不美观的, 冗余数据太多了, 倒是

你可以这样来组织:

1
2
3
4
Host gg-* ms-* fb-*
User corvo
Port 22000
IdentityFile ~/.ssh/id_rsa_test

现在, 你可以这样来请求了.

1
~ ❤  ssh fb-react03-teer.xx.yy.zz