Nach dem Erstellen von Schlüsseln mit Namen id_rsa
am Standardspeicherort. Ich füge dem SSH-Agenten mit dem Befehl Identität ssh-add ~/.ssh/id_rsa
hinzu. Es wird erfolgreich hinzugefügt.
Ich kann SSH ohne Eingabe der Passphrase des Schlüssels durchführen, da dies bereits bei SSH Agent der Fall ist.
Aber , wenn ich neu starten Maschine oder Server und dann prüfen , für Identität mit dem Befehl ssh-add -L
I Nachricht bin immer wie The agent has no identities
.
Bedeutet das, dass der Agent beim Neustart des Computers die Identität verloren hat? Ist das normal oder fehlt mir hier etwas?
Bitte leiten Sie mich, ich bin mit SSH nicht sehr vertraut.
Antworten:
Es ist normal. Der Zweck eines Schlüsselagenten besteht nur darin, entschlüsselte Schlüssel im Speicher zu halten , sie werden jedoch niemals auf die Festplatte geschrieben. (Das würde den Zweck zunichte machen - warum nicht stattdessen einfach den Hauptschlüssel aufheben?)
Daher müssen die Schlüssel bei jedem Login entsperrt werden, und Sie müssen dies automatisieren - unter Linux ist die Verwendung
pam_ssh
eine Option. Es verwendet automatisch Ihr Betriebssystemkennwort , um den Agenten zu entsperren. Ein anderes ähnliches Modul istpam_envoy
, das afaik etwas zuverlässiger ist (aber systemd erfordert).Beide Module starten den Agenten selbst und laden die Schlüssel automatisch.
quelle
$SSH_AUTH_SOCK
habe,-bash: /tmp/ssh-gT43vE99vk/agent.511
erhalte ich das Ergebnis :: Erlaubnis verweigert Ich bin hier verwirrt. Ob meine Agentenweiterleitung funktioniert oder nicht. Können Sie bitte einen Leitfaden erstellen?echo $SSH_AUTH_SOCK
, um seinen Wert zu drucken.Versuchen Sie dies zu Ihrem ~ / .bashrc :
Dies sollte erst nach der Anmeldung zur Eingabe des Kennworts auffordern.
quelle
Unter OS X verfügt ssh-add über ein spezielles Flag, mit dem eine Verbindung zum Schlüsselbund hergestellt werden kann, wenn Sie Ihren privaten Schlüssel dort speichern möchten.
Lauf einfach
ssh-add -K ~/.ssh/id_rsa
.Ich glaube, dies beantwortet Ihre Frage vollständiger. Dieses OS X-spezifische Flag ist schwer zu finden, funktioniert jedoch seit mindestens OS X Leopard.
quelle
ssh-add -A
der alle Schlüssel im Schlüsselbund hinzufügt. Erstellen Sie außerdem ein~/.ssh/config
und fügen SieUseKeychain yes
es hinzu, damit macOS Ihren Schlüssel immer beibehältDiese Lösung ist praktisch, wenn Ihre SSH-Schlüssel durch Passphrasen geschützt sind.
Das Problem bei allen oben genannten Antworten besteht darin, dass Sie, wenn Ihr privater Schlüssel durch eine Passphrase geschützt ist, jedes Mal, wenn Sie ein neues Terminal starten und versuchen, den privaten Schlüssel zu verwenden, die Passphrase eingeben müssen und am Ende mehrere Kopien des
ssh-agent
In ausführen Erinnerung. Die Lösung besteht darin, Folgendes in Ihr~/.bashrc
oder hinzuzufügen~/.zshrc
:Dies fragt nur einmal nach der Passphrase Ihrer privaten ssh-Schlüssel, wenn Sie ein Terminal starten. Beim anschließenden Öffnen neuer Terminalsitzungen (oder tmux-Versionen) wird der vom obigen Snippet erstellte ssh-Agent wiederverwendet.
Referenz
quelle