多台服务器别再记 IP:~/.ssh/config 的四个实用写法

举报
yiboyun 发表于 2026/11/06 07:18:16 2026/11/06
【摘要】 服务器一多,登录命令就开始失控:IP、端口、用户名、密钥路径全靠手敲,敲错一次就得多查半天。`~/.ssh/config` 就是用来收拾这堆零散参数的:写一次配置,以后只敲别名就能登录。第一个写法是给每台机器起别名。最基本的三行就够:Host hk、HostName 203.0.113.10、User deploy、Port 2222。以后 `ssh hk` 就等价于原来那串长命令。别名按用...

服务器一多,登录命令就开始失控: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 和端口就再也不用背了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。