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