Я пытаюсь сделать конфиг для подключения к удаленному 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