Как очистить записи ssh-agent (в Mac OS X)?


60

Я использую Mac OS X, и кажется, что после SSHing к нескольким машинам, используя файлы идентификации, мой 'ssh-agent' создает много идентификаторов / ключей, а затем иногда предлагает слишком много для удаленной машины, заставляя их сбросьте меня с толку перед подключением:

Получено отключение от 10.12.10.16: 2: слишком много ошибок аутентификации для cwd

Совершенно очевидно, что происходит, и эта страница рассказывает об этом более подробно:

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

Перезагрузка очищает агент, а затем все снова работает нормально. Я также могу добавить эту строку в мой .ssh/configфайл, чтобы заставить его использовать аутентификацию по паролю:

PreferredAuthentications keyboard-interactive,password

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

Есть ли простой способ очистить все ключи в 'ssh-agent' (то же самое, что происходит при перезагрузке)?

Ответы:


98

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

Запустите ssh-add -lсписок ключей агента, ssh-add -Dчтобы очистить все ключи.


Может быть, это как-то связано с конфигурацией OSX? Если я наберу, ssh-add -lя ничего не получу. Если я набираю, ssh -i ~/keyFileLocation.dsa un@remotehostя получаю всплывающее диалоговое окно OS X с просьбой ввести фразу-пароль. Я набираю его, а затем он соединяет меня. Если я отключаюсь, а затем набираю, ssh-add -lэто показывает мне личность, которую я только что использовал. После перезагрузки компьютера и ввода ssh-add -lснова пусто. ssh-add -Dотлично работал, чтобы очистить ключи без перезагрузки. Спасибо!
cwd

Четыре года спустя, и это все еще проблема, но это исправление все еще работает - спасибо
jnunn

Эй, вы можете направить меня к этому, пожалуйста? superuser.com/questions/951002/…
Никс

4
Неправильно (в 2017 году): см. AddKeysToAgentОпцию конфигурации, которая предназначена для явной цели добавления ваших ключей SSH к агенту только потому, что вы используете SSH для сервера.
Радон Росборо

1

Другой способ ограничить то, против чего проверяются ключи, - добавить IdentitiesOnly yesи IdentityFile ~/.ssh/<nameofkey>в ваш /.ssh/configфайл.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.