645 Stimmen

Wie kann man einen privaten Schlüssel mit ssh-add unter Ubuntu dauerhaft hinzufügen?

Ich habe einen mit einem Kennwort geschützten privaten Schlüssel für den Zugriff auf einen Server über SSH.

Ich habe 2 Linux-Rechner (Ubuntu 10.04) und das Verhalten des Befehls ssh-add ist bei beiden unterschiedlich.

Auf einem Rechner wurde der Schlüssel nach der Verwendung von "ssh-add .ssh/identity" und der Eingabe meines Kennworts dauerhaft hinzugefügt, d. h. jedes Mal, wenn ich den Computer herunterfahre und mich erneut anmelde, ist der Schlüssel bereits hinzugefügt.

Bei der anderen muss ich den Schlüssel jedes Mal hinzufügen, wenn ich mich anmelde.

Soweit ich mich erinnere, habe ich bei beiden das Gleiche getan. Der einzige Unterschied besteht darin, dass der Schlüssel auf der Seite erstellt wurde, die dauerhaft hinzugefügt wird.

Weiß jemand, wie man sie auch auf dem anderen Gerät dauerhaft hinzufügen kann?

1 Stimmen

Der Agent sollte nur temporär sein; aber es ist möglich, dass Sie den Befehl ssh-add irgendwo in ~/.bashrc oder so auf einem der beiden Rechner haben

0 Stimmen

Dieser Befehl hat bei mir funktioniert ssh-add --apple-use-keychain ~/.ssh/id_rsa

943voto

daminetreg Punkte 8914

Eine Lösung bestünde darin, die Schlüsseldateien dauerhaft aufzubewahren, indem Sie sie in Ihrem ~/.ssh/config Datei:

IdentityFile ~/.ssh/gitHubKey
IdentityFile ~/.ssh/id_rsa_buhlServer

Wenn Sie keine 'config'-Datei im ~/.ssh-Verzeichnis haben, sollten Sie eine erstellen. Sie braucht keine Root-Rechte, also einfach:

nano ~/.ssh/config

...und geben Sie die obigen Zeilen entsprechend Ihren Anforderungen ein.

Damit dies funktioniert, muss die Datei chmod 600 haben. Sie können den Befehl chmod 600 ~/.ssh/config .

Wenn Sie möchten, dass alle Benutzer auf dem Computer den Schlüssel verwenden, fügen Sie diese Zeilen in /etc/ssh/ssh_config und den Schlüssel in einem für alle zugänglichen Ordner.

Wenn Sie zusätzlich den Schlüssel für einen bestimmten Host festlegen möchten, können Sie in ~/.ssh/config Folgendes tun:

Host github.com
    User git
    IdentityFile ~/.ssh/githubKey

Dies hat bei vielen Identitäten den Vorteil, dass ein Server Sie nicht zurückweist, weil Sie zuerst die falschen Identitäten ausprobiert haben. Es wird nur die spezifische Identität ausprobiert.

184voto

totas Punkte 9600

Ich habe dieses Problem auf Mac OSX (10.10) durch die Verwendung der Option -K für ssh-add gelöst:

ssh-add -K ~/.ssh/your_private_key

Für macOS 10.12 und später müssen Sie zusätzlich Ihre ssh-Konfiguration wie hier beschrieben bearbeiten: https://github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain

132voto

Aaron Punkte 3636

Unter Mac OS X Lion konnte ich das gleiche Problem nicht lösen. Ich habe schließlich hinzugefügt:

ssh-add ~/.ssh/id_rsa &>/dev/null

zu meiner .zshrc (aber .profile wäre auch in Ordnung), was das Problem anscheinend behoben hat.

(Wie hier vorgeschlagen: http://geek.michaelgrace.org/2011/09/permanently-add-ssh-key-ssh-add/ )

62voto

Christian Saiki Punkte 1330

Fügen Sie einfach den Schlüsselbund hinzu, wie es in den Ubuntu Quick Tips beschrieben ist https://help.ubuntu.com/community/QuickTips

Was

Anstatt ständig ssh-agent und ssh-add zu starten, können Sie Ihre ssh-Schlüssel mit keychain verwalten. Um keychain zu installieren, können Sie einfach hier klicken, oder Synaptic oder apt-get von der Kommandozeile aus verwenden, um die Aufgabe zu erledigen.

Befehlszeile

Eine andere Möglichkeit, die Datei zu installieren, ist, das Terminal zu öffnen (Anwendung->Zubehör->Terminal) und einzugeben:

sudo apt-get install keychain

Datei bearbeiten

Fügen Sie dann die folgenden Zeilen in Ihre ${HOME}/.bashrc oder /etc/bash.bashrc ein:

keychain id_rsa id_dsa
. ~/.keychain/`uname -n`-sh

25voto

NShiny Punkte 752

Ich hatte das gleiche Problem auf Ubuntu 16.04: einige Schlüssel wurden permanent hinzugefügt, für andere musste ich ssh-add bei jeder Sitzung. Ich fand heraus, dass die Schlüssel, die permanent hinzugefügt wurden, sowohl den privaten als auch den öffentlichen Schlüssel in ~/.ssh und die Schlüssel, die bei jeder Sitzung vergessen wurden, hatten nur private Schlüssel in ~/.ssh Dir. Die Lösung ist also einfach: Sie sollten die beide privaten und öffentlichen Schlüssel zu ~/.ssh vor der Ausführung ssh-add .

P.S.: Soweit ich das aus Zwerg-Wiki Meine Methode funktioniert dank gnome-keyring, das Teil der Gnome Desktop Environment ist. Daher sollte meine Methode wahrscheinlich nur funktionieren, wenn Sie Gnome oder Gnome-basierte DE verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X