Проблема с ssh-agent и / или Mac брелок на Mac

tl;dr: у меня есть идентификаторы в ssh-agent. Все, кроме одного, привыкают; каждый добавляется к агенту и цепочке для ключей, когда я его использую, но затем мне снова и снова предлагается ввести ключевую фразу, как если бы ключа не было в агенте (а если нет, как если бы агент не мог получить пароль из цепочки для ключей).

Подробности:

У меня есть набор ключей SSH (RSA, протокол 2), для которых я использую агент и храню парольные фразы в цепочке для ключей.

Для одного (и только одного) из этих ключей и только недавно SSH начал игнорировать идентификационные данные в агенте. То есть:

  • Подключаю с помощью ключа (ssh -i keyfile user@host, IdentitiesOnly верно для Host *)
  • OS X запрашивает пароль; Я установил флажок сохранить в связке ключей.
  • идентификатор неявно добавляется к агенту, добавляется запись цепочки для ключей
  • Я закрываю связь
  • Я воссоединяюсь
  • Меня снова спрашивают о парольной фразе, как будто записи агента и / или цепочки для ключей не существует

Я проверил, что: - Запись цепочки для ключей установлена ​​на "всегда разрешать" для ssh, ssh-add и ssh-agent. - Файл ключей имеет правильные права доступа. - Идентификация загружена в агент. - Логин работает с этим идентификатором, при условии, что я набираю пароль каждый раз.

Что я пробовал:

  • Удалив всю запись цепочки для ключей, затем снова запустил ssh. Мне предложили ввести фразу-пароль, ввести ее, добавить запись в цепочку для ключей и личность в агенте; связь сработала, в следующий раз снова спросили.
  • Переименование самого файла ключа. Создается новая запись цепочки для ключей, соединение работает, но при следующем соединении меня снова спрашивают о парольной фразе.
  • Я бегал ssh-add -D с последующим ssh-add -k, Я проверил, что нарушающий ключ находится среди добавленных идентификаторов; поэтому, в принципе, связь между агентом и цепочкой для ключей, кажется, работает. Все еще спрашивает снова.

Это не происходит ни с одним из моих других ключей, и сам ключ работает для SSH. Это также очень раздражает, поскольку я использую достаточно сильные парольные фразы для ключей.

3 ответа

Решение

Оказывается, проблема была в том, что у меня было слишком много идентификаторов в моем агенте. Обычно ssh игнорирует -i вариант, когда он имеет идентификаторы в агенте и просто использовать идентификаторы в агенте по очереди. Если у вас больше, скажем, 5, серверы отклонят их все, а затем вернутся к использованию паролей, потому что было слишком много неудачных попыток.

настройка identitiesonly в host * заставляет SSH пройти -i вариант (или identityfile в .ssh/config снова, но все равно будет искать в агенте, если указанная идентификационная информация уже разблокирована, так что это исправило эту проблему под любым углом.

Вы не должны использовать аргумент '-i keyfile', если в вашем агенте присутствует идентификатор.

Попробуй это:

ssh-add keyfile
ssh -v user@host

(V поможет вам отладить)

Следите за блогом Дэйва Дрибина ( ssh-agent в Mac OS X 10.5 (Leopard)

Вы должны выполнить следующую команду:

ssh-add -k /path/to/your/private/key

После этого вы проверяете свои настройки через:

sh-add -L
Другие вопросы по тегам