为什么 ssh 无法扩展 .ssh/config 中的 %h 变量?

为什么 ssh 无法扩展 .ssh/config 中的 %h 变量?

为什么 ssh 无法从 .ssh/config 扩展 %h?这曾经可以工作,现在除了在 RHEL 机器上以外仍然有效。想知道这是什么原因造成的。是否有某个设置告诉 ssh 不要扩展 %h?

我的 .ssh/config 中有类似这样的内容:

Host *.foo
  HostName %h.mydomain.com

在 RHEL 机器上,此功能不起作用,我得到了这个:

$ ssh -vvvv bar.foo
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /home/zsimic/.ssh/config
debug1: Applying options for *.foo
debug1: Applying options for *.foo
debug1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
ssh: Could not resolve hostname %h.mydomain.com: Name or service not known

答案1

您正在使用 OpenSSH 5.3;%h在 OpenSSH 中引入5.6

自 OpenSSH 5.5 以来的变化
=========================

 * 将 %h 扩展为 ssh_config 主机名选项中的主机名。虽然这
   听起来没用,但对于处理不合格的
   主机名:

     主持人 *。*
        主机名 %h
     主持人 *
        主机名 %h.example.org

答案2

man ssh_config没有提到将%h在子句中展开HostName。我正在使用openssh5.9p1

编辑:确实如此,但我错过了

如果设置某些代理服务器(仅限本地的代理服务器即可)不会困扰您,那么也许ProxyCommand可以使用一些解决方法。

或者,您可以枚举中的几个主机名.ssh/config

相关内容