5

У меня есть несколько машин в одном домене, к которым я часто подключаюсь; apollo.my.university.edu hades.my.university.edu zeus.my.university.edu и я использую одинаковые параметры конфигурации для каждого из них. Вместо того, чтобы печатать их все в моем .ssh/config ,

Host apollo
    Hostname apollo.my.university.edu

Host hades
    Hostname hades.my.university.edu

Host zeus
    Hostname zeus.my.university.edu

Есть ли способ makefile-esque использовать псевдоним для завершения имени хоста для всех одновременно? Что-то вроде

Host apollo hades zeus
    Hostname *.my.university.edu

2 ответа2

8

Пытаться

Host apollo hades zeus
    Hostname %h.my.university.edu

Если я правильно читаю man ssh_config , это должно делать то, что вы хотите.

HostName
         Specifies the real host name to log into.  This can be used to specify nicknames
         or abbreviations for hosts.  If the hostname contains the character sequence
         `%h', then this will be replaced with the host name specified on the command
         line (this is useful for manipulating unqualified names).  The default is the
         name given on the command line.  Numeric IP addresses are also permitted (both
         on the command line and in HostName specifications).
1

Помимо использования ssh_config как показано в demure, вы также можете настроить поиск DNS на ваш домен, если нет другого соответствия. Для этого добавьте следующее в файл /etc/resolv.conf :

search my.university.edu

Таким образом, вам даже не нужно добавлять хосты в ~/.ssh/config . ssh zeus и распознаватель найдет для вас подходящий хост. Поскольку это происходит на уровне распознавателя, оно также работает для других программ, таких как curl и Firefox.

Обратите внимание, что такие программы, как NetworkManager, перезаписывают resolv.conf . В случае NetworkManager вам нужно изменить настройку « Поиск домена» на my.university.edu .

Документация:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .