Почему ssh не может расширить %h из .ssh/config? Это работало и работает до сих пор, за исключением 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
был тольковведено в OpenSSH5.6:
Изменения по сравнению с OpenSSH 5.5 ========================= * Расширьте %h до имени хоста в параметрах имени хоста ssh_config. В то время как это звучит бесполезно, на самом деле это удобно для работы с неквалифицированными имена хостов: Хозяин *.* Имя хоста %h Хозяин * Имя хоста %h.example.org
решение2
man ssh_config
не упоминает, что %h
будет расширено в HostName
пункте. Я используюopenssh5.9p1
редактировать:это было и я пропустил это
Если настройка прокси-сервера (подойдет и локальный) вас не смущает, возможно, ProxyCommand
можно найти обходной путь.
Или вы можете перечислить несколько имен хостов в .ssh/config
.