OpenSSH ~ / .ssh / config специфичные для хоста переопределения не работают

16

Я попытался настроить свой ~/.ssh/configфайл с помощью этого руководства. Однако переопределение пользователя для конкретного хоста не имеет никакого эффекта, и ssh пытается подключиться, используя глобальное имя пользователя вместо конкретного хоста. Моя конфигурация ssh настроена так:

$ cat ~/.ssh/config
User my_global_username

Host dev1
    HostName 10.40.10.41
    User my_username_on_dev_machines

Я также попытался поместить глобальное имя пользователя под Host *записью безрезультатно. Версия OpenSSH и сборка, которую я использую, - это OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013 `.

уп
источник

Ответы:

29

Там нет "глобального" значения в .ssh/config. Если вы хотите иметь значение по умолчанию, вы должны поместить его в Host *раздел:

Host dev1
    HostName 10.40.10.41
    User my_username_on_dev_machines

Host *
    User my_global_username

Обратите внимание на порядок: выигрывает первый матч!

Cran
источник
2
Пара дополнительных вопросов: 1) изменилось ли поведение в последнее время? Руководство на связанном веб-сайте четко видно Host *в верхней части.
Andyn
2) Первое совпадение выигрывает, но, видимо, только для тех значений, которые оно явно устанавливает. Это где-то задокументировано? Man ssh_config не показывает ничего связанного с разделами Host или PATTERNS.
Andyn
6
Первое предложение во втором абзаце в ssh_config (5) гласит: «Для каждого параметра будет использоваться первое полученное значение». Я не знаю, изменилось ли это в последнее время, но у меня всегда было «Host *» внизу.
кран