Я использую файл .ssh / config, чтобы правильно установить свое имя пользователя на основе заданной части поддомена, например
Host *widgetshop.com*
User foobar
ControlMaster auto
ControlPath ~/.ssh/socket-%r@%h:%p
Host *
ControlMaster auto
ControlPath ~/.ssh/socket-%r@%h:%p
Это сработает, если я напишу:
ssh foo.widgetshop.com
но не работает, если я напишу:
ssh foo
который после разрешения пути поиска становится тем же fqdn.
У кого-нибудь есть способ расширить короткие имена перед вызовом ssh или альтернативный подход?
Возможно, вы можете использовать host
команда:
ssh $(host -t A foo | cut -f1 -d" ")
Поместите это в сценарий оболочки (замените «foo» на «$ 1») и выполните ssh.
Начиная с OpenSSH 6.5, вы можете сделать это с помощью CanonicalizeHostname
опция в ssh_config. Вот пример, который должен делать то, что вы хотите:
CanonicalizeHostname yes
CanonicalDomains widgetshop.com
Host *.widgetshop.com
User foobar
На это отвечает справочная страница ssh_config:
Хост - это аргумент имени хоста, указанный в командной строке (т.е. имя не преобразуется в каноническое имя хоста перед сопоставлением).
Другими словами, это не работает, потому что так не работает.
пожалуйста, посмотрите мой "альтернативный подход")
mbp:~ alexus$ grep f9 /etc/hosts
XX.XXX.XX.XXX f9
mbp:~ alexus$ ssh f9 hostname
f9.XXX.org
mbp:~ alexus$