Некоторое время назад я заметил, что в моем ssh-agent есть три ключа, которые я не могу удалить. ssh-add -l
показал три ключа; Я побежал ssh-add -D
, и мне сказали, что «все личности удалены»; но затем немедленный ssh-add -l
показал те же три ключа.
Если я выйду из системы и вернусь обратно, ключи все еще будут там. Если я перезагружаю машину, ключи все еще там. Если я удалю каталог с ключами /tmp
, я больше не смогу подключиться ssh-agent
, но после выхода из системы и возврата ключи вернутся. Они неуязвимы.
Насколько я могу судить, ключи мои, а не чужие. Я могу получить доступ к своим обычным местным службам с ними. Но когда я снова добавляю один из ключей с помощью ssh-add
, указывая путь к файлу с закрытым ключом, новый ключ выглядит по-другому ssh-add -l
:
2048 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f /home/jruser/.ssh/jruser-keyname-20110418 (RSA)
по сравнению с оригиналом:
2048 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f jruser 04/18/2011 keyname (RSA)
Есть ли способ разумно объяснить это поведение? Я думаю, что на самом деле есть два вопроса:
Как ключи удалось сохранить даже при перезагрузке? Мои базовые знания
ssh
показывают, что ключи всегда нужно добавлять вручную.Почему
ssh-agent -D
мне врут насчет удаления личности?
Ответы:
Похоже, это может быть ошибка. Я имею подобное поведение в Ubuntu 10.10. Поиск в Google нашел отчет об ошибке для Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=472477
Чтобы удалить лишние ключи, которые я показывал, я просто переместил их из каталога ~ / .ssh.
источник
Ваши ключи хранятся в виде файлов в скрытом каталоге: /home/jruser/.ssh/, поэтому они сохраняются после перезагрузки. Я предполагаю, что ssh-add -D удаляет их из памяти, но когда вы перезагружаетесь, они читаются из каталога .ssh, и поэтому вы снова их получаете.
источник
ssh-add -D
НЕ удаляет их из памяти. Это никак не влияет.