Я использую Mac OS X, и кажется, что после SSHing к нескольким машинам, используя файлы идентификации, мой 'ssh-agent' создает много идентификаторов / ключей, а затем иногда предлагает слишком много для удаленной машины, заставляя их сбросьте меня с толку перед подключением:
Получено отключение от 10.12.10.16: 2: слишком много ошибок аутентификации для cwd
Совершенно очевидно, что происходит, и эта страница рассказывает об этом более подробно:
SSH-серверы позволяют вам только пытаться аутентифицироваться определенное количество раз. Каждая неудачная попытка ввода пароля, каждая предлагаемая неудачная публикация / идентификация и т. Д. Предпринимают одну из этих попыток. Если в вашем агенте много ключей SSH, вы можете обнаружить, что сервер SSH может выгнать вас, прежде чем вы вообще сможете попытаться выполнить аутентификацию по паролю. Если это так, есть несколько различных обходных путей.
Перезагрузка очищает агент, а затем все снова работает нормально. Я также могу добавить эту строку в мой .ssh/config
файл, чтобы заставить его использовать аутентификацию по паролю:
PreferredAuthentications keyboard-interactive,password
Как бы то ни было, на странице, на которую я ссылался, я увидел примечание об удалении ключей из агента, но я не уверен, применимо ли это к Mac, так как они, похоже, очищаются после перезагрузки.
Есть ли простой способ очистить все ключи в 'ssh-agent' (то же самое, что происходит при перезагрузке)?
ssh-add -l
я ничего не получу. Если я набираю,ssh -i ~/keyFileLocation.dsa un@remotehost
я получаю всплывающее диалоговое окно OS X с просьбой ввести фразу-пароль. Я набираю его, а затем он соединяет меня. Если я отключаюсь, а затем набираю,ssh-add -l
это показывает мне личность, которую я только что использовал. После перезагрузки компьютера и вводаssh-add -l
снова пусто.ssh-add -D
отлично работал, чтобы очистить ключи без перезагрузки. Спасибо!