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
相关产品推荐
相关产品推荐

