it-swarm.com.de

Wie entferne ich die Passphrase für den SSH-Schlüssel, ohne einen neuen Schlüssel erstellen zu müssen?

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?

863
btbytes

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.

1646
Torsten Marek

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.

Sie können mehr lesen hier und hier .

36
mlambie

$ 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!

31
Karan