Назад | Перейти на главную страницу

расширять имена хостов до fqdn перед вызовом ssh?

Я использую файл .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$