Ich habe dem Agenten einen SSH-Schlüssel hinzugefügt:
$ ssh-add ~/.ssh/id_rsa_mac
Identity added: /Users/alex/.ssh/id_rsa_mac (/Users/alex/.ssh/id_rsa_mac)
Nach einem Neustart hat der Agent diesen Schlüssel nicht mehr hinzugefügt:
$ ssh-add -l
The agent has no identities.
Warum ist das passiert?
$HOME/.gnupg/private-keys-v1.d
ab, sobald Sie sie mit ssh-add hinzufügen. Es ist wirklich hartnäckig. Vorausgesetzt, Sie haben ein nichtflüchtiges Home-Verzeichnis.Antworten:
Das Hinzufügen von Schlüsseln zum Agenten ist vorübergehend. Sie halten nur so lange an, wie der Agent ausgeführt wird. Wenn Sie es beenden oder Ihren Computer neu starten, gehen sie verloren, bis Sie sie erneut hinzufügen. Von der
ssh-agent
Manpage:macOS Sierra
Apple hat mit macOS Sierra 10.12.2 eine UseKeychain-Konfigurationsoption für SSH-Konfigurationen hinzugefügt. Sie können diese Funktion aktivieren, indem Sie sie
UseKeychain yes
zu Ihrer hinzufügen~/.ssh/config
.OSX-Schlüsselbund
Ich verwende kein OSX, habe aber im SuperUser die folgenden Fragen und Antworten gefunden: Wie verwende ich den Mac OS X-Schlüsselbund mit SSH-Schlüsseln? .
So können Sie Ihre SSH-Schlüssel mithilfe des folgenden Befehls in den Schlüsselbund importieren:
Ihre Schlüssel sollten dann von Start zu Start bestehen bleiben.
Quelle: Super User - Wie verwende ich Mac OS X Keychain mit SSH-Schlüsseln?
quelle
~/.ssh/id_rsa
. Ich vermute, dies ist der Speicherort Ihrer Schlüsseldatei unter Linux. Es ist auch möglich, dass Sie nicht den Standard-SSH-Schlüsselagenten verwenden. Es gibt andere, wie z. B. Gnome-Keyring-Daemon, die sich möglicherweise anders verhalten.ssh-agent
automatisch irgendwelche Schlüssel hinzufügt. Meiner Meinung nachssh-add
liest es die Standardspeicherorte oder denssh
Client, wenn Sie den Agenten nicht verwenden./usr/bin/ssh-add -K /path/to/private/key
Dies
ssh-agent
ist ein Sitzungsdienst, der Schlüssel für den Benutzer temporär speichert .Der Hauptzweck des SSH-Agenten besteht darin, sich die Klartextversion eines Schlüssels zu merken, der mit einer Passphrase gesichert ist. Mit anderen Worten, der Schlüssel wird mit einer Passphrase verschlüsselt auf der Festplatte gespeichert, und der Eigentümer des Schlüssels verwendet
ssh-add
oder ein anderes GUI-Tool, um die Passphrase bereitzustellen, und weist den Agenten an, sich diese zu merken, bis die Sitzung beendet wird oder der Benutzer das Entfernen explizit anfordert.Wenn Sie keine Passphrase verwenden und keine Agentenweiterleitung verwenden (was für die meisten Zwecke ohnehin unsicher ist), benötigen Sie den Agenten überhaupt nicht . Jeder SSH-Client sollte in der Lage sein, den Schlüssel von der Festplatte zu lesen, entweder von einem Standardspeicherort oder von einem explizit angegebenen Speicherort.
Die Standardpositionen sind auf der Handbuchseite aufgeführt
ssh(1)
:Wenn Sie nicht standardmäßige Speicherorte verwenden, können Sie den auf derselben Handbuchseite beschriebenen
-i
Schalterssh
oder die entsprechende Option in dem von Ihnen verwendeten SSH-Client verwenden.quelle
ssh-agent
In Sierra :
Verwenden Sie UseKeychain . (Ich habe das nicht ausprobiert, aber es klingt wie die richtigste Lösung.)
Oder
Oder erstellen Sie eine plist-Datei, anstatt sie anzuhängen
~/.bash_profile
.Haftungsausschluss: Wie andere angemerkt haben, weiß ich nicht, wie sicher es ist, SSH-Passphrasen im Schlüsselbund zu speichern.
quelle