為什麼 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
.