18

Некоторое время назад я заметил, что в моем 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)

Есть ли способ разумно объяснить это поведение? Я думаю, что на самом деле есть два вопроса:

  1. Как ключи удалось сохранить даже при перезагрузке? Мои базовые знания по ssh позволяют предположить, что ключи всегда нужно добавлять вручную.

  2. Почему ssh-agent -D лжет мне об удалении идентификаторов?

2 ответа2

11

Похоже, это может быть ошибка. Я имею подобное поведение в Ubuntu 10.10. Поиск в Google нашел отчет об ошибке для Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=472477

Чтобы удалить лишние ключи, которые я показывал, я просто переместил их из каталога ~/.ssh.

3

Ваши ключи хранятся в виде файлов в скрытом каталоге: /home/jruser/.ssh/, поэтому они сохраняются после перезагрузки. Я предполагаю, что ssh-add -D удаляет их из памяти, но когда вы перезагружаетесь, они читаются из каталога .ssh, и вы снова их получаете.

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