Не удается удалить ключи из ssh-agent. Даже перезагрузка не помогает


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мне врут насчет удаления личности?


Также есть ошибка в Fedora / Red Hat: bugzilla.redhat.com/show_bug.cgi?id=1205546
spoovy

Ответы:


11

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

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


Да! Это работает для меня. Благодарность! Я использую Debian свистящих бета 4.
Тарраш

3
Наконец пристегнулся и исследовал. Виновником является gnome-keyring-daemon, который а) автоматически загружает все ключи в ~ / .ssh и б) отказывается от них отказаться. Решение состоит в том, чтобы не запускать gnome-keyring-manager, что, как ни странно, было достигнуто путем удаления разрешения на выполнение программного файла.
Шон

Есть ли решение для этого, которое не включает хобблинг gnome-keyring-manager? т.е. исправление gnome-keyring-manager, чтобы он удалял ключи, о которых ему было сказано?
Фил

1
Это 2018 год, и это все еще актуально. Придется переместить ключи из ~ / .ssh
Карсон Ип

1
Вау. Удалите ключи из ~ / .ssh и поместите в другой каталог, как упомянуто @CarsonIp, а затем используйте команду ssh-agent в вашем bashrc, чтобы вручную загрузить дополнительные ключи ssh из другого каталога. PIMA!
Ligemer

3

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


4
Но ssh-add -DНЕ удаляет их из памяти. Это никак не влияет.
Шон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.