Назад | Перейти на главную страницу

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

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

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

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

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

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

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

P.S. Я использую open ssh 6.0

Во-первых, вы можете иметь в виду, что ваши параметры конфигурации 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 не был абсолютным. После того, как я установил правильное имя хоста и полный путь, все начало работать.