一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Linux如何配置SSH的主机名缩写

时间:2026-07-06 08:04:02 编辑:袖梨 来源:一聚教程网

Host别名生效需满足:Host行顶格无特殊字符,必含HostName和User,文件权限为600,且仅读取~/.ssh/config;免密需配密钥与authorized_keys权限正确。

直接改 ~/.ssh/config 就行,不用动系统主机名,也不用改 /etc/hosts

怎么写 Host 别名才生效

SSH 客户端只认 ~/.ssh/config 里的 Host 段,不是随便起个名字就能用的。

  • Host 行后面跟的必须是你要输入的缩写(比如 s1),不能带空格或特殊字符
  • 同一段里必须有 HostName(IP 或域名)和 User,否则连接时会报错 ssh: Could not resolve hostname s1: Name or service not known
  • 文件权限必须是 600,否则 SSH 会忽略它:chmod 600 ~/.ssh/config
  • 别写在 /etc/ssh/ssh_config 里——那是全局配置,普通用户没权限改,且优先级不如用户级配置

常见错误:连得上但总要输密码

这不是别名问题,是认证没配好。别名只是简化输入,不等于免密。

  • 确认已生成密钥:ssh-keygen -t ed25519(推荐比 rsa 更快更安全)
  • 公钥必须放到目标机器的 ~/.ssh/authorized_keys,不是 id_rsa.pub 文件本身
  • 检查目标机 ~/.ssh 权限是否为 700authorized_keys 是否为 600
  • 如果用了自定义密钥路径,别名段里得加:IdentityFile ~/.ssh/mykey

多个服务器共用一套参数怎么办

用通配符 + Include,避免重复写十几遍一样的 UserIdentityFile

  • 例如所有内网服务器都用 dev 用户和同一把密钥:Host 192.168.1.*n User devn IdentityFile ~/.ssh/id_ed25519_dev
  • 生产环境单独抽成文件:Include ~/.ssh/prod.conf,然后在 prod.conf 里写具体主机段
  • 注意通配符匹配是“前缀匹配”,Host web* 能匹配 web1web-api,但不匹配 staging-web

最常被忽略的是 ControlMaster 复用和套接字目录权限——~/.ssh/sockets 目录不存在或权限不对,会导致复用失效,看起来“别名生效了但连接还是慢”。

热门栏目