You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSH配置中Include指令前添加任意指令会导致被包含文件内的HostName失效?

SSH配置中Include指令前添加任意指令会导致被包含文件内的HostName失效?

哎,我最近碰到个特别诡异的SSH配置问题,给大家唠唠:

一开始我的SSH主配置文件是这样的(注释掉了Host wut块):

$ cat ~/.ssh/config
# Host wut
#   LocalForward 1234 whatever:1234

Include ~/.ssh/test.include

被包含的test.include内容是:

$ cat ~/.ssh/test.include
Host op1
  HostName 123.123.123.123

这时候测试配置解析:

$ ssh -G op1 | grep hostname
hostname 123.123.123.123
canonicalizehostname false

完美!这时候ssh到op1肯定会用指定的123.123.123.123,完全符合预期。

但是当我把Host wut那块取消注释之后(其实这里不管加什么指令,哪怕是完全不相关的,都会出问题),情况就不对了:
主配置文件变成了:

$ cat ~/.ssh/config
Host wut
  LocalForward 1234 whatever:1234

Include ~/.ssh/test.include

被包含的文件内容完全没变:

$ cat ~/.ssh/test.include
Host op1
  HostName 123.123.123.123

这时候再测试配置解析:

% ssh -G op1 | grep hostname
hostname op1
canonicalizehostname false

啥情况啊?为什么突然就不用指定的IP地址了?

对了,我的SSH版本是:

ssh -V
OpenSSH_9.6p1, LibreSSL 3.3.6

备注:内容来源于stack exchange,提问作者jsharpe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 13:04:38