用 SSH Config 管理多台服务器:告别长命令和重复输入
服务器一多,登录命令就开始失控:每台机器的用户名、地址、端口、密钥都不一样,靠记忆和历史记录翻找,既慢又容易输错。把这些信息写进 SSH 的配置文件,一次配置、处处复用,是更省心的做法。
配置文件通常在 ~/.ssh/config,不存在就新建一个。最基本的写法只需要四行:Host 是你给机器起的别名,HostName 是真实地址,User 是登录用户,Port 是端口。写好之后,原来很长的命令就变成 ssh web1,地址和端口都不用再敲。
Host web1
HostName 192.0.2.10
User deploy
Port 2222
IdentityFile ~/.ssh/id_web1
别名可以起得有规律,比如 web1、web2、db1,或者按环境分 dev-web、prod-db。名字本身就是文档,新人看到别名大概能猜到用途,比一串 IP 好记,也减少了把生产和测试搞混的风险。
很多服务器有共性,可以用通配符一次写清。Host .dev.example.com 匹配一类域名,Host web- 匹配一类别名。需要注意匹配顺序:SSH 会按文件顺序读取,先匹配到的规则先生效,所以具体的规则要放在前面,通用的规则放在后面,避免被宽泛规则抢先。
需要经过跳板机才能到达内网时,ProxyJump 很实用。在内网主机的配置里写 ProxyJump jump,登录时 SSH 会先连跳板机,再自动跳到目标,全程只需要一条命令。跳板机本身也可以在配置里单独定义,换地址时只改一处。
保持连接稳定也有办法。ServerAliveInterval 60 表示每 60 秒发一次保活,ServerAliveCountMax 3 表示连续三次无响应才断开,适合网络不太稳定但又不想频繁重连的场景。
安全习惯不能省。配置文件权限建议设为 600,只允许自己读写;密钥文件同样不要放宽权限。生产和测试尽量用不同的密钥,IdentityFile 指明用哪一把,避免 SSH 按默认顺序试错。
出问题先别急着改配置,用 ssh -v 看详细过程,确认它到底用了哪条规则、哪把密钥;用 ssh -G web1 可以打印最终生效的配置,快速验证通配符有没有按预期匹配。多数“连不上”不是网络问题,而是规则顺序、端口或密钥路径写错了。
总结一下:SSH Config 不是什么高级技巧,它只是把重复信息从命令行搬到文件里。别名清晰、通配符有序、跳板机集中、密钥分开,这四点做好,日常登录会明显变轻。以后新增一台服务器,也只是多写几行配置,而不是多记一串命令。
- 点赞
- 收藏
- 关注作者
评论(0)