ssh не использует имя сервера в конфигурации

ssh не использует имя сервера в конфигурации

Я пытаюсь сделать конфиг для подключения к удаленному ssh-серверу через команду ssh <server short name>. Я вставляю это в ~/.ssh/config:

Host <server short name> <server full name>
    Host <server full name>
    User <my username on the remote server>
    Port 22022
    ForwardAgent yes
    ForwardX11 yes

Я могу подключиться с помощью

$ ssh <server full name>

но это не срабатывает с командой

$ ssh <server short name>
ssh: Could not resolve hostname <server short name>: Name or service not known

Я проверил орфографию несколько раз и не смог найти ошибку. Есть идеи, почему вторая команда не срабатывает?

решение1

Hostне как опция SSH; он всегда начинает новый раздел, независимо от уровня отступа. Таким образом, у вас есть два раздела конфигурации; пустой, соответствующий, <shortname> <fullname>а затем один, соответствующий только <fullname>.

Вместо этого вторая строка должна быть HostName <fullname>.

решение2

Смотритестраницы руководства

Ключевое hostслово используется для группировки конфигураций, а также может использоваться для определения псевдонима для хоста или настройки нескольких хостов одновременно.

Рассмотрим следующий сценарий: на работе у вас есть два сервера, называемые dev.example.com и test.example.com, где вы используете одну и ту же пару ключей и учетную запись github со второй парой ключей. Затем вы можете настроить следующую конфигурацию

host *.example.com
identityfile ~/.ssh/work-key
user bob
Port 22022
ForwardAgent yes
ForwardX11 yes

host github.com
identityfile ~/.ssh/github-key

host dev
hostname dev.example.com

host test
hostname test.example.com

И используйте что-то вроде этого для подключения:

ssh dev

Связанный контент