Warum kann ssh die Variable %h in .ssh/config nicht erweitern?

Warum kann ssh die Variable %h in .ssh/config nicht erweitern?

Warum kann SSH %h nicht aus .ssh/config erweitern? Das hat früher funktioniert und funktioniert immer noch, außer auf einer RHEL-Box. Suche nach der Ursache dafür. Gibt es irgendwo eine Einstellung, die SSH anweist, %h nicht zu erweitern?

Ich habe so etwas in meiner .ssh/config:

Host *.foo
  HostName %h.mydomain.com

Auf der RHEL-Box, auf der dies nicht funktioniert, erhalte ich Folgendes:

$ 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

Antwort1

Sie verwenden OpenSSH 5.3; %hwar nureingeführt in OpenSSH5.6:

Änderungen seit OpenSSH 5.5
=========================

 * Erweitern Sie %h zum Hostnamen in den ssh_config-Hostnamenoptionen. Während dies
   klingt nutzlos, ist aber eigentlich praktisch für die Arbeit mit unqualifizierten
   Hostnamen:

     Gastgeber *.*
        Hostname %h
     Gastgeber *
        Hostname %h.example.org

Antwort2

man ssh_configerwähnt nicht, dass %hin der Klausel erweitert wird HostName. Ich verwendeopenssh5.9p1

bearbeiten:das hat es und ich habe es verpasst

Wenn es Ihnen nichts ausmacht, einen Proxyserver einzurichten (ein lokaler reicht aus), ProxyCommandist möglicherweise ein Workaround möglich.

Oder Sie können einige Hostnamen in auflisten .ssh/config.

verwandte Informationen