Was könnte der Grund sein, dass private Schlüssel nicht freigeschaltet werden?

13

Seit ich vor einiger Zeit auf Ubuntu 17.10 aktualisiert habe, werden meine privaten Schlüssel - die ich zum Beispiel verwende, um über ssh auf meinen Server zuzugreifen - nach der Anmeldung nicht mehr programmgesteuert entsperrt.

Bildbeschreibung hier eingeben

Meines Erachtens seahorse clientsollte sich normalerweise der darum kümmern, indem er Sie fragt, ob das Kennwort des Schlüssels beim ersten Eingeben gespeichert werden soll oder nicht.

Meine erste Vermutung war, dass seahorse-daemondas aus irgendeinem Grund nicht lief, aber es ist:

user@Zeus:~$ ps aux | grep seahorse
user    19170  0.0  0.1 432636 26564 ?        Ss   00:07   0:00 seahorse-daemon

Meine zweite Vermutung war, dass ich aus irgendeinem Grund alle in seahorse gespeicherten Passwörter unter »Passwörter-> Login« löschen muss: Bildbeschreibung hier eingeben

Ich hatte gehofft, den Kunden zu zwingen, mich erneut zu fragen und sie dann erneut zu speichern. Aber das hat auch nicht geholfen. Der Kunde erscheint nicht, um mich zu fragen ...

Dann habe ich diese Frage gefunden, die zusammenhängen könnte, mir aber nicht geholfen hat: Schalte alle privaten Schlüssel auf Ubuntu frei und gib das Passwort nur einmal bei der Anmeldung ein

Da die Verwaltung anderer Passwörter wie erwartet funktioniert (z. B. Passwörter für Nautilus, Chromium, Nextcloud usw.), gehe ich davon aus, dass das Problem etwas mit ssh-agent... zu tun hat .

Kann mir jemand Hinweise geben, wie man dieses Problem löst? Hat sich etwas an der Art und Weise geändert, wie GNOME mit Passwörtern umgeht? Vielleicht konnte während des Upgrade-Vorgangs kein neues schickes Programm installiert werden?

UPDATE Wenn ich den privaten Schlüssel erneut zum Authentifizierungsagenten hinzufüge, mit:

ssh-add ~/.ssh/id_rsa

Wenn Sie versuchen, sich anzumelden, werden Sie aufgefordert, den Schlüssel nur einmal zu entsperren. Danach wird der Schlüssel programmgesteuert entsperrt. Dies funktioniert aber nur bis zum nächsten Neustart. Nach einem Neustart muss ich den Schlüssel wieder hinzufügen ...

user5950
quelle
Plötzlich wurde ich auch nach einem Passwort gefragt, um SSH-Schlüssel zu entsperren, während ich Ubuntu 17.10 verwende. Die akzeptierte Antwort hat mir nicht geholfen (funktioniert nur bis zum Neustart). Hier ist eine scheinbar doppelte Frage.
Alexey
Seahorse verschlüsselt seine Daten mit Ihrem Passwort (normalerweise). Passwortlose Logins, wie z. B. SSH mit einem Schlüssel, Fingerabdruckleser, ... lassen die Entschlüsselung so lange bestehen, bis sie benötigt werden. Dann werden Sie gefragt. Haben Sie die SSH-Anmeldungen von Kennwort auf Schlüssel umgestellt, als das Problem begann?
Ubfan1

Antworten:

7

Ja, ssh-agent ist die Antwort. Um die Passphrase zu speichern, müssen Sie nur Folgendes tun:

ssh-add ~/.ssh/id_rsa

Geben Sie dann Ihr Passwort ein und melden Sie sich erneut an.

dunkler Himmel
quelle
Dies hilft nur bis zum nächsten Neustart.
Alexey
@Alexey Ja, ich kann bestätigen, dass es nur bis zum nächsten Neustart funktioniert. Ich habe noch keine Lösung gefunden.
Benutzer5950
Der ssh-agent wird während einer Anmeldesitzung ausgeführt und beendet sich, wenn Sie ihn zu Ihrer eigenen Sicherheit beenden. Wenn es nach einem Neustart weiterhin besteht und Ihr Kontokennwort gefährdet wird, hat ein Angreifer plötzlich Zugriff auf Ihre RSA-Identität und damit auf jeden Computer, auf den Sie zugreifen können. Dies wäre eine böse Sicherheitslücke. Es gibt jedoch einige Problemumgehungen, die dazu führen, dass Ihr Konto weniger sicher ist. Siehe unix.stackexchange.com/questions/90853/…
darksky
6

Das Hinzufügen des SSH-Schlüsselagenten (GNOME-Schlüsselring: SSH-Agent) zu Startup Applications löste das Problem für mich:

Bildbeschreibung hier eingeben

Alexey
quelle
3

Erste Wahl

Starten Sie den ssh-Agenten:

ssh-agent

Fügen Sie den SSH-Schlüssel hinzu:

ssh-add ~/.ssh/id_rsa

Fügen Sie die folgende Zeile zu Ihrem .bash_profile hinzu, um den ssh-agent nach dem Neustart automatisch zu starten:

if [ -z "$SSH_AUTH_SOCK" ] ; then
  eval `ssh-agent -s`
  ssh-add
fi

Zweite Option

Fügen Sie dies Ihrem .bashrc oder .zshrc hinzu:

if [ ! -S ~/.ssh/ssh_auth_sock ]; then
  eval `ssh-agent`
  ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
fi
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock
ssh-add -l > /dev/null || ssh-add

Dies sollte nur bei der ersten Anmeldung nach jedem Neustart zur Eingabe eines Kennworts auffordern. Es wird denselben ssh-agent so lange wiederverwenden, wie er ausgeführt wird.

An0n
quelle
Danke, diese Problemumgehung sieht so aus, als ob sie funktioniert, aber ich wandere mich. Was hat dazu geführt, dass sie überhaupt nicht mehr funktioniert? Es verwendete , um Arbeit für die letzten zehn Jahre ... Ich mag die Ursache finden , bevor ich für dieses Problem zu umgehen gehen ...
user5950