多台服务器别再记 IP:~/.ssh/config 的四个实用写法
服务器一多,登录命令就开始失控:IP、端口、用户名、密钥路径全靠手敲,敲错一次就得多查半天。`~/.ssh/config` 就是用来收拾这堆零散参数的:写一次配置,以后只敲别名就能登录。第一个写法是给每台机器起别名。最基本的三行就够:Host hk、HostName 203.0.113.10、User deploy、Port 2222。以后 `ssh hk` 就等价于原来那串长命令。别名按用途起名比按 IP 起名好,机器换 IP 时只改一处配置,不用改脚本和笔记。第二个写法是给密钥指定路径。不同机器用不同密钥时,别依赖 ssh 默认去试所有密钥,明确写上:Host hk、IdentityFile ~/.ssh/id_ed25519_hk、IdentitiesOnly yes。`IdentitiesOnly yes` 很关键:它让 ssh 只用这一把密钥,不再逐个尝试 agent 里的其他密钥,既能避免服务端因尝试次数过多拒绝,也能少留试探记录。第三个写法是把通用项抽到 `Host *` 里。端口、连接复用、保活这些对所有机器都一样的参数,不必每段重复写:Host *、ServerAliveInterval 60、ServerAliveCountMax 3、ControlMaster auto、ControlPath ~/.ssh/cm-%C、ControlPersist 10m。`ControlPersist` 开了连接复用:第一次登录后 10 分钟内再连同一台机器会复用已有连接,不用重新握手和验证,传文件、跑多条命令时体感最明显。第四个写法是给跳板机做 ProxyJump。内网机器不直接暴露时,不用先 ssh 到跳板机再手动转一次:Host inner、HostName 10.0.0.5、User deploy、ProxyJump bastion。`ssh inner` 会自动先连跳板机 `bastion` 再进内网,scp 和 rsync 也一样能用这个配置。跳板机本身也只需要在 config 里再写一段。四条小规矩收尾:一是配置文件权限保持 600,别人能读你的 config 就等于能看到你的机器清单;二是改完先用 `ssh -G 别名` 看一眼解析结果,确认生效的参数和自己想的一样;三是别把密码写进 config,密码认证本身就该被密钥替代;四是 config 改动只影响本机登录,不动服务端,试错成本很低,放心调。把登录信息从脑子搬进配置文件,机器越多省得越多。下次加机器时,先写 config 再登录,养成这个顺序,IP 和端口就再也不用背了。
- 点赞
- 收藏
- 关注作者
评论(0)