🎯 适合:手里管着不止一台服务器、每次连接都要翻 IP 和密钥的人
我有好几台机器要连,一台 VPS、一台家里的、还有几个临时的。早期每次连接都是一长串 ssh root@某个IP -p 某端口 -i 某个密钥,记不住,每次翻历史命令,翻错了还连到别的机器上去。
后来才知道,这些麻烦 SSH 自己早就备好了解法,只是我一直没去用。这篇就说说 ~/.ssh/config 这个被很多人忽略的文件。
一个文件,给每台机器起个名
SSH 的配置文件支持给每台主机起别名,把 IP、端口、用户、密钥全塞进去。配好之后,连接就从一长串变成一个词。
Host vps
HostName 1.2.3.4
User deploy
Port 22022
IdentityFile ~/.ssh/vps_key
Host home
HostName 192.168.1.10
User me
从此 ssh vps 就够了。别名你随便起,怎么顺手怎么来。机器一多,这个省下来的脑力非常可观。
别再到处复制密钥
很多人有个坏习惯,密码登录图省事,或者把同一个私钥到处拷。
更稳的做法是一台机器一对密钥,公钥分发到对应服务器,私钥只留在本地。config 里用 IdentityFile 指定每台机器用哪个。这样哪天某台机器的密钥需要作废,只动那一对,不牵连全局。
密钥这东西,宁可多生成几对、分得清清楚楚,也别图省事一把钥匙开所有门。
跳板机也能写进去
如果某些机器只能通过一台中转机访问,不用每次手动两段连接。config 里一个 ProxyJump 就能让 SSH 自动帮你打通。
Host inner
HostName 10.0.0.5
ProxyJump vps
ssh inner 会自动先连 vps 再跳进去。这种内网机器多的场景,配一次省一辈子事。
几个让连接更省心的小开关
ServerAliveInterval定期发个心跳,连接挂在那儿不容易被掐断Compression yes在慢网络下能让交互顺一点- 给常连的机器配好后,scp、rsync、git 走 SSH 全都能直接用别名
这些都是写一次、长期受益的事。
- ✅ 用
~/.ssh/config给每台机器起别名,告别长命令 - ✅ 一台机器一对密钥,私钥不外传
- ✅ 跳板机用
ProxyJump自动打通 - ❌ 别再到处复制同一个私钥,别每次手敲完整连接串
💡 小贴士:花十分钟把你常连的机器都写进 config,是我认为投入产出比最高的运维小事之一。配好那一刻你不会有感觉,但接下来几百次连接,它每次都在帮你省事。
原创
SSH config:被很多人忽略的连接神器
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法