Ich habe beim Erstellen eines neuen SSH-Schlüssels auf meinem Laptop eine Passphrase festgelegt. Aber, wie ich jetzt sehe, ist das 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, ist, 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?
Kurze Antwort:
$ ssh-keygen -p
Anschließend werden Sie aufgefordert, den Speicherort der Schlüsseldatei, die alte Passphrase und die neue Passphrase (die leer bleiben kann, um keine Passphrase zu haben) einzugeben.
Wenn Sie alles in einer Zeile ohne Eingabeaufforderung ausführen möchten, gehen Sie wie folgt vor:
$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
Wichtig: Beachten Sie, dass beim Ausführen von Befehlen diese normalerweise in Ihrer ~/.bash_history
-Datei (oder ähnlichem) im Klartext protokolliert werden, einschließlich aller angegebenen Argumente (d. H. Der Passphrasen in diesem Fall). Es wird daher empfohlen, die erste Option zu verwenden, es sei denn, Sie haben einen bestimmten Grund, etwas anderes zu tun. Beachten Sie jedoch, dass Sie -f keyfile
weiterhin verwenden können, ohne -P
oder -N
angeben zu müssen, und dass die Standardeinstellung der Schlüsseldatei ~/.ssh/id_rsa
ist, sodass sie in vielen Fällen nicht einmal benötigt wird.
Möglicherweise möchten Sie ssh-agent verwenden, mit dem die Passphrase eine Zeit lang zwischengespeichert werden kann. Die neuesten Versionen von gpg-agent unterstützen auch das von ssh-agent verwendete Protokoll.
Möglicherweise möchten Sie Ihrem .bash_profile (oder einem gleichwertigen Verzeichnis) Folgendes hinzufügen, wodurch ssh-agent bei der Anmeldung gestartet wird.
if [ -f ~/.agent.env ] ; then
. ~/.agent.env > /dev/null
if ! kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then
echo "Stale agent file found. Spawning new agent… "
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
else
echo "Starting ssh-agent"
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
Auf einigen Linux-Distributionen (Ubuntu, Debian) können Sie Folgendes verwenden:
ssh-copy-id -i ~/.ssh/id_dsa.pub [email protected]
Dadurch wird die generierte ID auf einen Remote-Computer kopiert und dem Remote-Schlüsselbund hinzugefügt.
$ ssh-keygen -p
hat für mich gearbeitet
Geöffnete Git Bash. Eingefügt: $ ssh-keygen -p
Drücken Sie die Eingabetaste für den Standardspeicherort.
Alte Passphrase eingeben
Neue Passphrase eingeben - BLANK
Bestätigen Sie die neue Passphrase - BLANK
BOOM Der Schmerz der Eingabe der Passphrase für git Push war weg.
Vielen Dank!