Ubuntu 18.04下OpenSSH配置Match语句报错求助
Ubuntu 18.04下OpenSSH配置Match语句报错求助
嘿,这个问题我之前帮朋友排查过类似的,给你捋捋原因和解决办法:
你的错误提示“Unsupported Match attribute final”已经把问题点出来了——你当前用的OpenSSH版本根本不支持Match语句里的final属性!
你看你本地的OpenSSH版本是OpenSSH_7.6p1 Ubuntu-4ubuntu0.7,而final这个Match选项是OpenSSH 8.0版本才新增的功能,它的作用是标记这条Match规则是最后生效的,后续其他Match规则不会再匹配当前的连接请求。
给你两个可行的解决方向:
方案一(简单省心):删掉
final关键字
把你的Match行改成下面这样,OpenSSH 7.6就能正常识别了:Match originalhost my_server exec "my_executable vault ssh cert"方案二(保留功能):升级OpenSSH到8.0及以上
如果你确实需要final的特性,可以升级OpenSSH版本。不过Ubuntu 18.04默认软件源里的版本比较旧,你可以通过第三方PPA或者手动编译源码来升级,升级前记得备份好原有配置,注意系统兼容性问题。
另外补充个小技巧:如果你用final是为了确保这条Match规则最后被匹配生效,在旧版本里可以通过调整配置顺序来实现——把这个Match块放在所有其他Host或Match规则的最末尾,这样它就会最后触发,能达到类似final的效果。
附你的配置和错误信息参考:
你的~/.ssh/config配置内容:
Match originalhost my_server final exec "my_executable vault ssh cert" Host my_server HostName something.my_server.com User first.last AddKeysToAgent yes ForwardAgent yes ForwardX11 yes
执行ssh my_server时的报错:
$ ssh my_server Unsupported Match attribute final /home/gabriel/.ssh/config line 1: Bad Match condition
你的OpenSSH版本输出:
$ ssh -V OpenSSH_7.6p1 Ubuntu-4ubuntu0.7, OpenSSL 1.0.2n 7 Dec 2017
备注:内容来源于stack exchange,提问作者Gabriel Staples
相关产品推荐
相关产品推荐

