Schlüssel können nicht vom ssh-agent entfernt werden. Auch ein Neustart hilft nicht

18

Vor kurzem habe ich festgestellt, dass mein ssh-agent drei Schlüssel enthält, die ich nicht löschen kann. ssh-add -lzeigte drei Schlüssel; Ich rannte ssh-add -Dund erhielt die Anweisung "Alle Identitäten entfernt". aber dann ssh-add -lzeigte ein sofortiger die gleichen drei Schlüssel.

Wenn ich mich aus- und wieder einlogge, sind die Schlüssel immer noch da. Wenn ich die Maschine neu starte, sind die Schlüssel noch dort. Wenn ich das Schlüsselbundverzeichnis in lösche /tmp, kann ich keine Verbindung ssh-agentmehr herstellen, aber beim Abmelden und erneuten Anmelden sind die Schlüssel wieder da. Sie sind unverwundbar.

Die Schlüssel gehören mir, soweit ich das beurteilen kann, niemand anderem. Ich kann mit ihnen auf meine üblichen lokalen Dienste zugreifen. Wenn ich aber einen der Schlüssel erneut mit hinzufüge ssh-addund den Pfad zu einer privaten Schlüsseldatei gebe, sieht der neue Schlüssel in der Ausgabe von 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)

gegen das Original:

2048 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f jruser 04/18/2011 keyname (RSA)

Gibt es eine Möglichkeit, dieses Verhalten sinnvoll zu erklären? Ich denke, es gibt wirklich zwei Fragen:

  1. Wie ist es gelungen, die Schlüssel auch nach einem Neustart beizubehalten? Meine Grundkenntnisse von sshlegen nahe, dass Schlüssel immer manuell hinzugefügt werden müssen.

  2. Warum ssh-agent -Dlügt mich das Entfernen von Identitäten an?

Sean
quelle
Es gibt auch einen Fedora / Red Hat-Bug: bugzilla.redhat.com/show_bug.cgi?id=1205546
spoovy

Antworten:

11

Es sieht so aus, als wäre es ein Fehler. Ich habe ein ähnliches Verhalten in Ubuntu 10.10. Eine Google-Suche hat einen Fehlerbericht für Debian gefunden: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=472477

Um die zusätzlichen Schlüssel zu entfernen, die ich angezeigt hatte, habe ich sie einfach aus dem ~ / .ssh-Verzeichnis verschoben.

mp3foley
quelle
Ja! Das funktioniert bei mir. Vielen Dank! Ich benutze Debian Wheezy Beta 4.
Tarrasch
3
Endlich angeschnallt und recherchiert. Der Täter ist der Gnome-Keyring-Daemon, der a) automatisch alle Schlüssel in ~ / .ssh lädt und b) sich weigert, sie preiszugeben. Die Lösung besteht darin, den Start von gnome-keyring-manager zu unterbinden, was seltsamerweise schwierig war, da schließlich die Ausführungsberechtigung der Programmdatei entfernt wurde.
Sean
Gibt es eine Lösung, bei der der Gnom-Schlüsselbund-Manager nicht humpelt? dh, gnome-keyring-manager wird so repariert, dass er die Schlüssel löscht, denen er befohlen wurde?
Phil
1
Es ist 2018 und dies ist immer noch relevant. Müssen Sie die Schlüssel aus ~ / .ssh bewegen
Carson Ip
1
Wow. Entfernen Sie die Schlüssel aus ~ / .ssh und speichern Sie sie in einem anderen Verzeichnis als @CarsonIp, und verwenden Sie dann einen ssh-agent-Befehl in Ihrem bashrc, um die zusätzlichen ssh-Schlüssel manuell aus dem anderen Verzeichnis zu laden. PIMA!
Ligemer
3

Ihre Schlüssel werden als Dateien im versteckten Verzeichnis gespeichert: /home/jruser/.ssh/ So bleiben sie auch nach einem Neustart erhalten. Ich vermute, das ist, dass ssh-add -D sie aus dem Speicher löscht, aber wenn Sie neu starten, werden sie aus dem .ssh-Verzeichnis gelesen und Sie haben sie wieder.

pbsmind
quelle
4
ssh-add -DLöscht sie aber NICHT aus dem Speicher. Es hat überhaupt keine Wirkung.
Sean