Wie kann ich meinen privaten SSH-Schlüssel dauerhaft zum Schlüsselbund hinzufügen, damit er automatisch für ssh verfügbar ist?

ssh-add -K ~/.ssh/id_rsa lädt Ihren Schlüssel, fragt jedoch bei jedem Neustart nach dem Kennwort.

Ich suche nach einer Lösung, bei der ich das Schlüsselkennwort zwischen den Anmeldungen nicht erneut eingeben muss.

Kommentare

  • Can Sie sagen etwas mehr darüber, wann die Passwortabfrage für Sie angezeigt wird? Ich frage, weil ich einen SSH-Schlüssel für einen Remote-Server habe, von dem ich versichere, dass er nicht mit meinem Mac-Anmeldekennwort oder etwas anderem übereinstimmt, und ich ' musste den nicht eingeben Passwort für den SSH-Schlüssel für Jahre . Ich kann einfach ein Terminal öffnen und " ssh < Server > " und ich ' bin dort. Ich glaube, ich habe diesen Schlüssel zuerst unter OSX 10.5 eingerichtet. id_dsa, aber ich denke nicht, dass ' das wichtig sein sollte.
  • Mein id_rsa Schlüssel hat ein Passwort.
  • Ich habe auch das Problem, dass ich dies vor so langer Zeit gelöst habe, dass ich mich ' nicht genau daran erinnern kann, was ich getan habe. Aber ich denke, die Idee ist, nicht
    ssh-add auszuführen, sondern nur ssh direkt. Sie sollten ein Fenster öffnen, das als Passphrase für den Schlüssel dient, und ein Kontrollkästchen, mit dem Sie es in Ihrem Schlüsselbund speichern können.
  • @Sorin – meins auch! Ich musste es vor langer Zeit einmal eingeben und der Mac hat es seitdem für mich gespeichert. Hoffentlich hilft der Rat von Harald '.
  • Meinen Sie das Schlüsselbundkennwort (dh Ihr Anmeldekennwort) oder den Schlüssel ' s Passphrase? Wenn es ' letzteres ist, sind Ihre Passphrasen definitiv im Schlüsselbund gespeichert? Sie können dies überprüfen, indem Sie den Schlüsselbundzugriff öffnen und im Anmeldeschlüsselbund danach suchen.

Antwort

Unter OSX Der native ssh-add -Client hat ein spezielles Argument zum Speichern der Passphrase des privaten Schlüssels im OSX-Schlüsselbund. Dies bedeutet, dass Ihre normale Anmeldung ihn für die Verwendung mit ssh freischaltet. Unter OSX Sierra und später müssen Sie auch SSH so konfigurieren, dass immer der Schlüsselbund verwendet wird (siehe Schritt 2 unten).

Alternativ können Sie einen Schlüssel ohne Passphrase verwenden, aber wenn Sie die Sicherheit bevorzugen, ist dies mit Sicherheit akzeptabel Dieser Workflow.

Schritt 1 – Speichern Sie den Schlüssel im Schlüsselbund.

Führen Sie dies nur einmal aus:

ssh-add -K ~/.ssh/[your-private-key] 

Geben Sie Ihre Schlüsselpassphrase ein und Sie werden nicht erneut danach gefragt.

(Wenn Sie eine Vor-Sierra-Version von OSX verwenden, sind Sie fertig, Schritt 2 ist nicht erforderlich.)

Schritt 2 – Konfigurieren Sie SSH so, dass immer der Schlüsselbund verwendet wird.

Es scheint, dass OSX Sierra das bequeme Verhalten des Beharrens Ihrer Schlüssel entfernt hat zwischen Anmeldungen und dem Update auf ssh wird standardmäßig nicht mehr der Schlüsselbund verwendet. Aus diesem Grund werden Sie nach dem Upgrade und nach jedem Neustart aufgefordert, die Passphrase für einen Schlüssel einzugeben.

Die Lösung ist recht einfach und wird in dieser Github-Thread-Kommentar . So richten Sie es ein:

  1. Stellen Sie sicher, dass Sie Schritt 1 oben abgeschlossen haben, um den Schlüssel im Schlüsselbund zu speichern.

  2. Wenn Sie dies noch nicht getan haben, erstellen Sie eine ~/.ssh/config -Datei. Mit anderen Worten, im Verzeichnis .ssh in Ihrem Ausgangsverzeichnis machen Sie Eine Datei mit dem Namen config.

  3. Fügen Sie in dieser .ssh/config -Datei die folgenden Zeilen hinzu :

     Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa 

    Ändern Sie ~/.ssh/id_rsa in den tatsächlichen Dateinamen Ihres privaten Schlüssels. Wenn Sie andere private Schlüssel in Ihrem haben ~/.ssh Verzeichnis, fügen Sie für jede von ihnen auch eine IdentityFile -Zeile hinzu. Ich habe beispielsweise eine zusätzliche Zeile mit der Aufschrift IdentityFile ~/.ssh/id_ed25519 für einen zweiten privaten Schlüssel.

    Die UseKeychain yes ist der Schlüsselteil, der SSH anweist, in Ihrem OSX-Schlüsselbund nach dem Schlüssel zu suchen Passphrase.

  4. Das wars! Wenn Sie das nächste Mal eine SSH-Verbindung laden, werden die von Ihnen angegebenen privaten Schlüssel ausprobiert und ihre Passphrase im OSX-Schlüsselbund gesucht. Es ist keine Eingabe von Passphrasen erforderlich.

Kommentare

  • @Poulsbo & @Abram – siehe mein Update, Sierra hat das automatische Verhalten geändert und jetzt müssen Sie ausführen ssh-add -A manuell, um Ihren gespeicherten Schlüsselbund zu laden. Einige mögliche Lösungen, auf die oben verwiesen wurde.
  • @trisweb Vielen Dank für den Tipp. joshbuchea ' zum Ändern der Datei .ssh/config sieht vielversprechend aus! Siehe github.com/lionheart/openradar-mirror/issues/…
  • Funktioniert hervorragend!In meinem Fall musste ich zusätzlich zum Flag K das Flag A verwenden, um meine Schlüssel zum Schlüsselbund hinzuzufügen und die Passphrase zu registrieren it (ssh-add -AK ~/.ssh/[your-private-key]). Danke!
  • Selbst mit der Option usekeychain stelle ich fest, dass mein Schlüsselbund beim Neustart den Schlüssel .ssh / id_rsa löscht.
  • Ich habe genau das Gleiche getan und mein Mac löscht den Schlüssel immer noch Schlüssel beim Neustart.

Antwort

Ich hatte ein ähnliches Problem, da ich gefragt wurde jedes Mal für meine Pub-Key-Passphrase. Auf Vorschlag des Benutzers „trisweb“ oben habe ich diese Optionen auf ~/.ssh/config aktiviert:

Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa 

Aber wurde immer noch jedes Mal aufgefordert, wenn ich ssh verwenden wollte. Schließlich habe ich ssh -v aktiviert und diese Debug-Zeile gefunden:

debug1: key_load_private: incorrect passphrase supplied to decrypt private key 

Dann habe ich meinen Schlüsselbund in „Keychain Access“ geöffnet .app „, fand den Schlüssel“ SSH: /Users/username/.ssh/id_rsa „und öffnete ihn. Ich klickte auf „Passwort anzeigen“, um das Passwort offenzulegen, und stellte tatsächlich fest, dass die Passphrase im Schlüsselbund eine alte Passphrase war. Ich habe die Passphrase in Keychain Access aktualisiert und jetzt funktioniert sie ohne Passwort.

Ich hätte die Passphrase auch mit folgendem Satz aktualisieren können:

ssh-keygen -p -f ~/.ssh/id_rsa 

Kommentare

  • Auf meinem Mac wird das Passwort in der Kategorie „Passwort“ der „iCloud“ -Kette gespeichert. Ich dachte, es wäre in der Anmeldekette.

Antwort

An alle, bei denen das oben genannte nicht funktioniert hat Mein Problem scheint darin bestanden zu haben, dass ich die UseKeychain yes & AddKeysToAgent yes insgesamt dupliziert habe SSH-Schlüsselprofile / Verknüpfungen. Ich habe meine ~/.ssh/config -Datei aktualisiert, um diese nur einmal zu deklarieren. Sie werden jetzt alle beim Anmelden geladen, ohne beim Start zur Eingabe von Kennwörtern aufzufordern, z. B.:

Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/foo IdentityFile ~/.ssh/bar Host foo HostName foo.com User fooUser IdentityFile ~/.ssh/foo Host bar HostName bar.com User barUser IdentityFile ~/.ssh/bar 

Kommentare

  • Ich würde empfehlen, dass Host * bestimmten Hostregeln folgt. Weitere Informationen finden Sie unter man ssh_config.

Antwort

Auch in Wenn Sie mit macOS Sierra und HighSierra (Sie wissen nichts über frühere Versionen) ssh-add -A ausführen, lädt der Agent alle Schlüssel, deren Passphrasen im Schlüsselbund gespeichert sind … Also sehr praktisch

Antwort

Fügen Sie den öffentlichen Schlüssel hinzu in:

.ssh/known_hosts 

Öffentlich Die Tasten sind normalerweise aktiviert:

/home/user/.ssh/id_rsa.pub 

Ich hoffe, das hilft

Kommentare

  • Ich denke, die authorized_keys
  • Wie auch immer, dies funktioniert nicht ', wenn Sie mehr als einen Schlüssel haben!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.