SSH config 文件:给多台服务器起别名、配代理与跳板

举报
yd_241226763 发表于 2026/11/13 08:34:45 2026/11/13
【摘要】 管理多台服务器时,如果每次都要敲一长串 ssh root@203.0.113.10 -p 22022,不仅容易敲错,私钥、端口、跳板机这些参数也很难记。SSH 自带的 config 文件就是解决这个问题的:把连接参数写进 ~/.ssh/config,之后只需要 ssh dev 一条命令。一、基本用法在 ~/.ssh/config 里写:Host dev,HostName 203.0.113....

管理多台服务器时,如果每次都要敲一长串 ssh root@203.0.113.10 -p 22022,不仅容易敲错,私钥、端口、跳板机这些参数也很难记。SSH 自带的 config 文件就是解决这个问题的:把连接参数写进 ~/.ssh/config,之后只需要 ssh dev 一条命令。

一、基本用法

在 ~/.ssh/config 里写:Host dev,HostName 203.0.113.10,Port 22022,User deploy,IdentityFile ~/.ssh/id_ed25519。保存后,ssh dev 就等价于原来那一长串命令。Host 后面是别名,可以起任意名字;缩进的几行是真正生效的参数。

二、通配符与默认值

config 支持 pattern 匹配,可以给一类主机统一设置默认值,比如 Host prod-* 段里统一写 User ops 和 ServerAliveInterval 30。注意匹配是从上到下,第一条命中的参数先生效,所以要把精确的 Host 放在前面,通配的规则放在后面,否则精确配置会被通配规则抢先。

三、跳板机:ProxyJump 一行搞定

内网机器不能直连时,以前要么用 ProxyCommand 写转发命令,要么先登跳板机再手动连内网。OpenSSH 7.3 之后有更简单的写法:在 internal 的配置里加一行 ProxyJump bastion,其中 bastion 也是 config 里定义的别名。执行 ssh internal 时会自动先建立到跳板的连接再做转发,连 agent 转发都省了。

四、端口转发也能写进配置

把 LocalForward 8080 127.0.0.1:80 写进对应的 Host 段,以后每次连接都会自动开好本地转发,临时排查线上问题时特别方便,不用每次记 -L 的长参数。

五、几个容易踩的坑

第一,config 文件权限必须是 600,权限太开放时 SSH 会忽略它;第二,Host 别名只在本机生效,git 的 remote 和 scp 都可以用它,但服务器端并不认识这个名字;第三,改完 config 不需要重启任何服务,下次连接即生效,可以用 ssh -G 别名打印最终生效的参数来验证配置是否正确。

把常用连接写进 config 之后,相当于给所有服务器做了一层本地 DNS 加快捷方式,配合 ssh-copy-id 一次配好公钥,日常运维就只剩 ssh 别名这一条命令。习惯养成后,多机管理的心智负担会明显下降。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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