Неможливо видалити ключі з ssh-агента. Навіть перезавантаження не допомагає


18

Нещодавно я помітив, що у мого ssh-агента є три ключі, які я не можу видалити. 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 Wheezy beta 4.
Tarrasch

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

Чи є для цього рішення, яке не передбачає блукання gnome-keyring-manager? тобто виправити gnome-keyring-manager, щоб він видалив ключі, про які йому сказано?
Філ

1
Це 2018 рік, і це все ще актуально. Доведеться перемістити ключі з ~ / .ssh
Карсон Іп

1
Ого. Вийміть ключі з ~ / .ssh і поставте в інший каталог, як згадується @CarsonIp, а потім скористайтеся командою ssh-agent у вашому bashrc, щоб вручну завантажити додаткові ключі ssh з іншого каталогу. ПІМА!
Лігемер

3

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


4
Але ssh-add -DНЕ видаляє їх із пам'яті. Це взагалі не має ефекту.
Шон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.