Ich habe beim Erstellen eines neuen SSH-Schlüssels auf meinem Laptop eine Passphrase festgelegt. Aber wie ich jetzt weiß, ist dies ziemlich schmerzhaft, wenn Sie versuchen, ( Git und SVN ) mehrmals in einer Stunde über SSH an einen entfernten Ort zu übertragen.
Eine Möglichkeit, die ich mir vorstellen kann, besteht darin, meine SSH-Schlüssel zu löschen und neue zu erstellen. Gibt es eine Möglichkeit, die Passphrase zu entfernen, während die gleichen Schlüssel beibehalten werden?
Antworten:
Kurze Antwort:
Dadurch werden Sie aufgefordert, den Speicherort der Schlüsseldatei, die alte Passphrase und die neue Passphrase einzugeben (die leer bleiben kann, um keine Passphrase zu haben).
Wenn Sie alles in einer Zeile ohne Eingabeaufforderung ausführen möchten, tun Sie Folgendes:
Wichtig: Beachten Sie, dass bei der Ausführung von Befehlen diese normalerweise in Ihrer
~/.bash_history
Datei (oder ähnlichem) im Klartext protokolliert werden, einschließlich aller angegebenen Argumente (dh der Passphrasen in diesem Fall). Es wird daher empfohlen, die erste Option zu verwenden, sofern Sie keinen bestimmten Grund haben, etwas anderes zu tun.Beachten Sie jedoch, dass Sie weiterhin verwenden können,
-f keyfile
ohne-P
noch angeben zu müssen-N
, und dass die Schlüsseldatei standardmäßig verwendet wird~/.ssh/id_rsa
, sodass sie in vielen Fällen nicht einmal benötigt wird.Möglicherweise möchten Sie ssh-agent verwenden, der die Passphrase für einige Zeit zwischenspeichern kann. Die neuesten Versionen von gpg-agent unterstützen auch das von ssh-agent verwendete Protokoll.
quelle
ssh-keygen -p
in einem Terminal ausgeführt werden. Sie werden dann aufgefordert, eine Schlüsseldatei (standardmäßig die richtige Datei für mich~/.ssh/id_rsa
), die alte Passphrase (geben Sie ein, was Sie jetzt haben) und die neue Passphrase (nichts eingeben) einzugeben.ssh-keygen -p -P oldpassphrase -N "" -f ~/.ssh/id_rsa
~/.bash_history
. Es ist besser zu tippen:$ cd ~/.ssh && ssh-keygen -f id_dsa -p
~/.bash_hstory
Ie aufgezeichnet wird . Verwenden Sie `ssh-keygen -p -P oldpassphrase -N" "-f ~ / .ssh / id_rsa` und es geht Ihnen gut (es sei denn, Sie haben dort einen anderen Keylogger). Sie könnten auch die Aufzeichnung aus der Geschichte loswerden ..$ ssh-keygen -p
arbeitete für michGeöffnete Git Bash. Eingefügt:
$ ssh-keygen -p
Drücken Sie die Eingabetaste als Standardspeicherort.
Geben Sie die alte Passphrase ein
Neue Passphrase eingeben - BLANK
Bestätigen Sie die neue Passphrase - BLANK
BOOM der Schmerz, Passphrase für Git Push einzugeben, war weg.
Vielen Dank!
quelle
$ ssh-keygen -p
drücken und sich Ihr Schlüssel nicht am Standardspeicherort befindet (z. B. /Users/yourname/.ssh/id_rsa), können Sie auf/Users/yourname/.ssh/yourkey
Aufforderung eineMöglicherweise möchten Sie Ihrem .bash_profile (oder einem gleichwertigen) Folgendes hinzufügen, wodurch ssh-agent bei der Anmeldung gestartet wird.
Auf einigen Linux-Distributionen (Ubuntu, Debian) können Sie Folgendes verwenden:
Dadurch wird die generierte ID auf einen Remotecomputer kopiert und dem Remote-Schlüsselbund hinzugefügt.
Hier und hier können Sie mehr lesen .
quelle
Um die Passphrase zu ändern oder zu entfernen, finde ich es oft am einfachsten, nur die Flags
p
und zu übergeben undf
mich dann vom System zur Eingabe der Passphrasen auffordern zu lassen:ssh-keygen -p -f <name-of-private-key>
Zum Beispiel:
ssh-keygen -p -f id_rsa
Geben Sie ein leeres Passwort ein, wenn Sie die Passphrase entfernen möchten.
Ein Beispiellauf zum Entfernen oder Ändern eines Kennworts sieht ungefähr so aus:
Wenn Sie einem Schlüssel ohne Passphrase eine Passphrase hinzufügen, sieht der Lauf ungefähr so aus:
quelle
Unter Windows können Sie mit PuttyGen die private Schlüsseldatei laden, die Passphrase entfernen und dann die vorhandene private Schlüsseldatei überschreiben.
quelle
Auf dem Mac können Sie die Passphrase für Ihren privaten SSH-Schlüssel in Ihrem Schlüsselbund speichern, wodurch die Verwendung transparent wird. Wenn Sie angemeldet sind, ist es verfügbar. Wenn Sie abgemeldet sind, kann Ihr Root-Benutzer es nicht verwenden. Das Entfernen der Passphrase ist eine schlechte Idee, da jeder mit der Datei sie verwenden kann.
Fügen Sie dies hinzu
~/.ssh/config
quelle