Wie überprüfe / überprüfe / teste / validiere ich meine SSH-Passphrase?

297

Ich glaube, ich habe die Passphrase für meinen SSH-Schlüssel vergessen, aber ich habe eine Ahnung, was es sein könnte. Wie überprüfe ich, ob ich Recht habe?

Joachim
quelle
5
Es ist ein passphrase, kein Passwort;)
Timo

Antworten:

123

Sie können Ihre SSH-Schlüsselpassphrase überprüfen, indem Sie versuchen, sie in Ihren SSH-Agenten zu laden. Bei OpenSSH erfolgt dies über ssh-add.

Wenn Sie fertig sind, denken Sie daran, Ihre SSH-Passphrase durch Ausführen vom Terminal zu entladen ssh-add -d.

Ignacio Vazquez-Abrams
quelle
13
Wenn Sie mit der Überprüfung fertig sind, entladen Sie Ihre SSH-Schlüssel-Passphrase von Ihrem SSH-Agenten mitssh-add -d
Kache
1
ssh-add erfordert Administratorrechte auf dem Computer, denke ich. Ich erhalte die Fehlermeldung: "Es konnte keine Verbindung zu Ihrem Authentifizierungsagenten hergestellt werden."
IgorGanapolsky
@IgorGanapolsky: Nein, es wird ein laufender Authentifizierungsagent benötigt. Ändern Sie Ihre Startskripte oder -optionen, um eines aufzurufen.
Ignacio Vazquez-Abrams
20
Robs Antwort ist die richtige Antwort.
mgarciaisaia
Wenn Sie zufällig Selinux verwenden, möchten Sie möglicherweise auch den Kontext des Home-Verzeichnisses und der .ssh-Dateien überprüfen! Ich hatte das Glück, diese einfache Lösung verwenden zu können: # restorecon -R -v /home/userUm zu überprüfen, ob dies das Problem ist (obwohl der vorhergehende Befehl keine Probleme verursachen sollte), können Sie $ ls -lZR <home_dir>den Kontext untersuchen. Wenn Sie user_home_tim Home-Verzeichnis sowie ssh_home_tim .sshVerzeichnis und in der authorized_keysDatei nichts sehen restorecon, beheben Sie diese.
Fbicknel
523

ssh-keygen -y

ssh-keygen -y fordert Sie zur Eingabe der Passphrase auf (falls vorhanden).

    Wenn Sie die richtige Passphrase eingeben, wird der zugehörige öffentliche Schlüssel angezeigt.
    Wenn Sie die falsche Passphrase eingeben, wird diese angezeigt load failed.
    Wenn der Schlüssel keine Passphrase hat, werden Sie nicht zur Eingabe einer Passphrase aufgefordert und der zugehörige öffentliche Schlüssel wird sofort angezeigt.

z.B,

Erstellen Sie ein neues öffentliches / privates Schlüsselpaar mit oder ohne Passphrase:

$ ssh-keygen -f /tmp/my_key
...

Überprüfen Sie nun, ob Sie auf das Schlüsselpaar zugreifen können:

$ ssh-keygen -y -f /tmp/my_key


Das folgende Beispiel zeigt die Ausgabe.

Erstellen Sie ein neues öffentliches / privates Schlüsselpaar mit oder ohne Passphrase:

$ ssh-keygen -f /tmp/my_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /tmp/my_key.
Your public key has been saved in /tmp/my_key.pub.
The key fingerprint is:
de:24:1b:64:06:43:ca:76:ba:81:e5:f2:59:3b:81:fe [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|     .+          |
|   . . o         |
|    = . +        |
|   = + +         |
|  o = o S .      |
|   + = + *       |
|    = o o .      |
|     . .         |
|      E          |
+-----------------+

Versuchen Sie, auf das Schlüsselpaar zuzugreifen, indem Sie die richtige Passphrase eingeben. Beachten Sie, dass der öffentliche Schlüssel angezeigt wird und der Exit-Status ( $?) den 0Erfolg anzeigt:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBJhVYDYxXOvcQw0iJTPY64anbwSyzI58hht6xCGJ2gzGUJDIsr1NDQsclka6s0J9TNhUEBBzKvh9nTAYibXwwhIqBwJ6UwWIfA3HY13WS161CUpuKv2A/PrfK0wLFBDBlwP6WjwJNfi4NwxA21GUS/Vcm/SuMwaFid9bM2Ap4wZIahx2fxyJhmHugGUFF9qYI4yRJchaVj7TxEmquCXgVf4RVWnOSs9/MTH8YvH+wHP4WmUzsDI+uaF1SpCyQ1DpazzPWAQPgZv9R8ihOrItLXC1W6TPJkt1CLr/YFpz6vapdola8cRw6g/jTYms00Yxf2hn0/o8ORpQ9qBpcAjJN
$ echo $?
0

Versuchen Sie, auf das Schlüsselpaar zuzugreifen, indem Sie eine falsche Passphrase eingeben. Beachten Sie, dass die Fehlermeldung "Laden fehlgeschlagen" angezeigt wird (Meldung kann je nach Betriebssystem unterschiedlich sein) und der Exit-Status ( $?) 1einen Fehler anzeigt:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
load failed
$ echo $?
1

Versuchen Sie, auf ein Schlüsselpaar ohne Passphrase zuzugreifen. Beachten Sie, dass es keine Eingabeaufforderung für die Passphrase gibt, der öffentliche Schlüssel angezeigt wird und der Exit-Status ( $?) den 0Erfolg anzeigt:

$ ssh-keygen -y -f /tmp/my_key_with_no_passphrase
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLinxx9T4HE6Brw2CvFacvFrYcOSoQUmwL4Cld4enpg8vEiN8DB2ygrhFtKVo0qMAiGWyqz9gXweXhdmAIsVXqhOJIQvD8FqddA/SMgqM++2M7GxgH68N+0V+ih7EUqf8Hb2PIeubhkQJQGzB3FjYkvRLZqE/oC1Q5nL4B1L1zDQYPSnQKneaRNG/NGIaoVwsy6gcCZeqKHywsXBOHLF4F5nf/JKqfS6ojStvzajf0eyQcUMDVhdxTN/hIfEN/HdYbOxHtwDoerv+9f6h2OUxZny1vRNivZxTa+9Qzcet4tkZWibgLmqRyFeTcWh+nOJn7K3puFB2kKoJ10q31Tq19
$ echo $?
0
Rob Bednark
quelle
2
Wenn kein Kennwort vorhanden ist, wird nur der zugehörige öffentliche Schlüssel ausgedruckt.
Kyrremann
1
Danke @Kyrremann! Ich habe jetzt die Antwort aktualisiert, um dies widerzuspiegeln.
Rob Bednark
ssh-keygen -yfragt nach der Schlüsseldatei und bietet eine Standardeinstellung an, wenn Sie wie erwartet auf Zurück klicken.
Timo
Ich habe ssh-keygen -ydie Passphrase meines SSH-Schlüssels überprüft. Es hat gut funktioniert, außer dass mein Ubuntu unglaublich langsam geworden ist. Die meisten Programme konnten in einer Minute oder länger gestartet werden, während die CPU-Auslastung 100% betrug. Nach dem Neustart meines Laptops konnte ich mich kaum anmelden, da es Minuten dauerte, bis ich meinen Desktop sah. Endlich habe ich dieses Problem auf Ask Ubuntu gefunden . Ich musste damit beginnen gnome-keyring-daemon, das Problem zu beheben.
Adam Fónagy
2

Wenn Sie die Lösung von @ RobBednark auf ein bestimmtes Windows + PuTTY-Szenario erweitern, können Sie Folgendes tun:

  1. Generieren Sie ein SSH-Schlüsselpaar mit PuTTYgen (nach dem manuellen Generieren Ihres SSH-Schlüssels in Windows ) und speichern Sie ihn in einer PPK-Datei.

  2. Wählen Sie im Kontextmenü im Windows Explorer die Option Mit PuTTYgen bearbeiten. Es wird nach einem Passwort gefragt.

Wenn Sie das falsche Passwort eingeben, werden Sie erneut aufgefordert.

Hinweis: Wenn Sie eingeben möchten, verwenden Sie den folgenden Befehl für einen Ordner, der die PPK-Datei enthält : puttygen private-key.ppk -y.

Kokbira
quelle
0

Verwenden Sie "ssh-keygen -p". Sie können "-f" hinzufügen

Sie werden aufgefordert, das alte Passwort einzugeben. Wenn das Passwort korrekt ist, werden Sie aufgefordert, ein neues Passwort einzugeben. Wenn das alte Passwort falsch ist, wird "Schlüssel <...> konnte nicht geladen werden" angezeigt.

Alex F.
quelle
-1

Wenn Ihre Passphrase darin besteht, Ihren SSH-Schlüssel zu entsperren, und Sie ssh-agentsshd (den SSH-Daemon) nicht auf Ihrem Computer installiert haben , gehen Sie wie folgt vor:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys;
ssh localhost -i ~/.ssh/id_rsa

Wo ~/.ssh/id_rsa.pubist der öffentliche Schlüssel und ~/.ssh/id_rsaist der private Schlüssel.

Alexx Roche
quelle
1
Es fragt nicht nach einer
Passphrase
Es tut für mich, die private id_rsa zu ssh localhost freizuschalten
Alexx Roche
Ich erhalte eine Fehlermeldung: "ssh: Verbindung zum Host localhost Port 22:
Ungültige Dateinummer