Нужна помощь в настройке SSH в Cygwin

У меня есть этот конфиг в ~/.ssh/config:

Host *.myhost.com
 User awwuser
 IdentityFile my-keys/myhost/id_dsa

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

Как я понял из документации, я все сделал правильно.

Но этот конфиг, похоже, не работает вообще. Когда я делаю ssh subdomain.myhost.com он пытается подключиться к нему, используя текущее имя пользователя, а не указанное в конфигурации. Когда я указываю имя пользователя через опции ssh, он не видит правильный файл идентификации. Так что мой конфиг не работает вообще.

Пожалуйста, порекомендуйте.

PS я использую open ssh 6.0

2 ответа

Во-первых, вы должны иметь в виду, что ваши параметры конфигурации SSH читаются сверху вниз.

В зависимости от настроек у вас также может быть глобальный раздел настроек по умолчанию. Примерно так.

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
    Protocol 2
    AddressFamily inet
    SendEnv LANG LC_*
    HashKnownHosts no
    GSSAPIAuthentication no

Если этот раздел находится перед вашим разделом, то настройки из * раздел будет использоваться. Как правило, вы хотите упорядочить файл конфигурации SSH от самых специфических настроек до наименее специфичных.

Ну как то так.

  host fully.qualitified.tld
   ...
  host *.example.com
   ...
  host *

Вы также должны помнить, что совпадение имен совпадает с точным именем, которое вы вводите в командной строке. Он не учитывает поиск DNS, который вы можете получить, потому что у вас есть myhost.com в вашем пути поиска.

Так что, если вы запустите команду ssh fooи у вас есть настройка DNS, где он разрешает foo в foo.example.com, клиент SSH не будет использовать какие-либо настройки из host foo.example.com, Вы можете сделать свою жизнь проще, добавив несколько псевдонимов в свой конфигурационный файл, как это host foo.example.com foo.example foo,

Поскольку вы упомянули, у вас есть несколько ключей. Имейте в виду, что вам может быть гораздо лучше просто запустить на своем клиенте агент SSH и добавить все свои ключи. Затем просто дайте SSH согласовать, какой ключ использовать автоматически. Вы также можете иметь несколько IdentityFile варианты в host * раздел. SSH просто попробует их все по одному.

Спасибо всем за внимание. Я обнаружил проблему, это был неправильный домен в имени хоста, и мой путь IdentityFile не был абсолютным. После того, как я установил правильное имя хоста и полный путь, все начало работать.

Другие вопросы по тегам