1

У меня странная проблема с SSH с моего Macbook Pro на сервер Linux (Ubuntu 11.10). У меня есть настройка ключа DSA на удаленном сервере Linux в моем домашнем каталоге, например:

/home/me/.ssh/authorzied_keys

У меня также есть такая же настройка ключа DSA для нескольких других учетных записей на компьютере с именами "foo" и "bar". Я могу войти во все учетные записи нормально без пароля. Поэтому все ключи DSA настроены правильно.

Странное поведение, которое я вижу при отладке SSH-соединения. Во время соединения отладка SSH выводит это:

debug2: key: /Users/me/.ssh/id_dsa (0x7f91a1424220)
debug2: key: /home/foo/.ssh/id_dsa (0x7f91a1425620)
debug2: key: /home/bar/.ssh/id_rsa (0x7f91a1425c60)
debug2: key: /Users/me/.ssh/id_rsa (0x0)
  • Это странно по многим причинам, но по сути, почему SSH перечисляет ключи на сервере (/home/foo/.ssh/id_dsa и /home/bar/.ssh/id_rsa)?
  • Эти файлы даже не существуют на сервере, так почему они перечислены?
  • Я не вхожу в учетные записи "foo" или "bar", так почему же SSH даже перечисляет их?
  • На моем Macbook Pro у меня есть только ключ DSA, но SSH перечисляет ключ RSA, что это значит?
  • Другой пользователь на сервере не получает ни одного из этих сообщений при входе в систему, и у него точно такая же настройка для своего ключа DSA и точно такая же настройка Macbook Pro, как у меня?

Кто-нибудь знает, что это за сообщения и почему SSH их выводит?

2 ответа2

3

Посмотрите на исходный код OpenSSH, static void pubkey_prepare(Authctxt *authctxt) в sshconnect2.c:

Он собирает (и затем перечисляет) ключи из следующих источников в указанном порядке:

/*
 * try keys in the following order:
 *  1. agent keys that are found in the config file
 *  2. other agent keys
 *  3. keys that are only listed in the config file
 */

Файл config и options.identity_files в коде ссылаются на директиву IdentityFile в ssh_config , тип данных которой определен в readconf.h .


Судя по порядку вывода, с неизвестными ключами, зажатыми между id_dsa и id_rsa , проверьте ваш агент SSH.

1

Даниэль прав, что загрузил твой ssh-агент?

ssh-add -l

Вы можете очистить все из вашего ssh-агента с помощью

ssh-add -D

Также обратите внимание, что ssh-agent в Mac OS X (10.5+) обычно не запускается, пока не потребуется. Поэтому SSH_AGENT_PID не установлен, а SSH_AUTH_SOCK настроен таким образом, что launchd будет создавать процесс ssh-agent только при первом использовании сокета.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .