Es scheint, dass ssh-add -K ~/.ssh/id_rsa
Ihr Schlüssel geladen wird, Sie jedoch bei jedem Neustart nach dem Kennwort gefragt werden.
Ich suche nach einer Lösung, bei der ich das Schlüsselkennwort zwischen den Anmeldungen nicht erneut eingeben muss.
id_rsa
Schlüssel hat ein Passwort.ssh-add
, sondern einfachssh
direkt zu rennen . Sie sollten ein Fenster mit der Passphrase für den Schlüssel und einem Kontrollkästchen zum Speichern in Ihrem Schlüsselbund erhalten.Antworten:
Unter OSX hat der native
ssh-add
Client ein spezielles Argument, um die Passphrase des privaten Schlüssels im OSX-Schlüsselbund zu speichern. Dies bedeutet, dass Ihre normale Anmeldung diese für die Verwendung mit ssh entsperrt. Unter OSX Sierra und höher müssen Sie SSH auch 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 diesem Workflow durchaus akzeptabel.
Schritt 1 - Bewahren Sie den Schlüssel im Schlüsselbund auf
Mach das einfach einmal:
Geben Sie Ihre Passphrase ein, und Sie werden nicht mehr danach gefragt.
(Wenn Sie mit einer Vorgängerversion von OSX arbeiten, ist Schritt 2 nicht erforderlich.)
Schritt 2 - Konfigurieren Sie SSH so, dass immer der Schlüsselbund verwendet wird
Es scheint, dass OSX Sierra das unangenehme Verhalten entfernt hat, Ihre Schlüssel zwischen den Anmeldungen beizubehalten, und das Update auf ssh verwendet standardmäßig nicht mehr den Schlüsselbund. 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 ziemlich einfach und wird in diesem Github-Thread-Kommentar beschrieben . So richten Sie es ein:
Stellen Sie sicher, dass Sie Schritt 1 oben ausgeführt haben, um den Schlüssel im Schlüsselbund zu speichern.
Falls noch nicht geschehen, erstellen Sie eine
~/.ssh/config
Datei. Mit anderen Worten,.ssh
erstellen Sie in dem Verzeichnis in Ihrem Ausgangsverzeichnis eine Datei mit dem Namenconfig
.Fügen Sie in dieser
.ssh/config
Datei die folgenden Zeilen hinzu:Ändern Sie
~/.ssh/id_rsa
den tatsächlichen Dateinamen Ihres privaten Schlüssels. Wenn Sie andere private Schlüssel in Ihrem~.ssh
Verzeichnis haben, fügen SieIdentityFile
für jeden auch eine Zeile hinzu. Zum Beispiel habe ich eine zusätzliche Zeile, in derIdentityFile ~/.ssh/id_ed25519
nach einem zweiten privaten Schlüssel gesucht wird.Dies
UseKeychain yes
ist der Schlüsselteil, der SSH anweist, in Ihrem OSX-Schlüsselbund nach der Passphrase für den Schlüssel zu suchen.Das ist es! Wenn Sie das nächste Mal eine SSH-Verbindung laden, werden die von Ihnen angegebenen privaten Schlüssel geprüft und im OSX-Schlüsselbund nach ihrer Passphrase gesucht. Keine Passworteingabe erforderlich.
quelle
ssh-add -K ...
die Schlüssel zum ssh-Agenten hinzugefügt, ohne dass Sie zur Eingabe eines Kennworts aufgefordert werden, jedoch nur für die aktuelle Sitzung. Nach einem Neustart musste ich den Befehl erneut ausgeben.ssh-add -A
manuell starten , um deinen gespeicherten Schlüsselbund zu laden. Einige mögliche Lösungen, auf die oben verwiesen wurde..ssh/config
Datei zu modifizieren , sieht vielversprechend aus! Siehe github.com/lionheart/openradar-mirror/issues/…A
Flag zusätzlich zu dem verwendenK
, um meine Schlüssel zum Schlüsselbund hinzuzufügen und die Passphrase darin zu registrieren (ssh-add -AK ~/.ssh/[your-private-key]
). Vielen Dank!Ich hatte ein ähnliches Problem, da ich JEDES MAL nach meiner Pub-Key-Passphrase gefragt wurde.
Auf Vorschlag des Benutzers "trisweb" oben habe ich diese Optionen für ~ / .ssh / config aktiviert:
ABER es hat mich jedes Mal, wenn ich ssh benutzen wollte, dazu aufgefordert.
Schließlich habe ich "ssh -v" aktiviert und diese Debug-Zeile gefunden:
Dann öffnete ich meinen Schlüsselbund in "Keychain Access.app", fand den Schlüssel mit dem Namen "SSH: /Users/username/.ssh/id_rsa" und öffnete ihn.
Ich habe auf "Passwort anzeigen" geklickt, um das Passwort offenzulegen, und in der Tat festgestellt, dass die Passphrase im Schlüsselring eine alte Passphrase war.
Ich habe die Passphrase in Keychain Access aktualisiert und jetzt funktioniert sie auch ohne Passwort.
Ich hätte auch die Passphrase mit dieser Phrase aktualisieren können:
quelle
Sie werden jedes Mal zur Eingabe des Passworts aufgefordert, da Ihr "Login" -Schlüsselbund nach Inaktivität und / oder Ruhezustand oder in Ihrem Fall nach einem Neustart gesperrt wird. Es gibt zwei Möglichkeiten, dies für Sie zu lösen.
Ändern Sie die Einstellungen für Ihren "Login" -Schlüsselbund. Angenommen, Ihr SSH-Schlüssel ist im "Login" -Schlüsselbund gespeichert.
Generieren Sie einen weiteren SSH-Schlüssel, ohne eine Passphrase zu verwenden.
ssh-keygen -t rsa -b 4096 -C <comment> -f <.ssh/id_rsa>
ssh-add -K <path to ssh key>
Sie sollten nicht mehr zur Eingabe eines Schlüsselbundkennworts aufgefordert werden.
quelle
ssh-add
aus SSH heraussecurity unlock-keychain
zuerst aufgerufen werden muss. Außerdem musste ich keine Verzeichnisse für den-f
Parameter erstellen . Leider musste ich immer nochsecurity unlocl-keychain
SSH-Sitzungen anrufen, um auf den Anmeldeschlüsselbund zuzugreifen, der jedes Mal zur Eingabe eines Kennworts auffordert ...Unter macOS Sierra und HighSierra (keine Informationen zu früheren Versionen)
ssh-add -A
wird der Agent beim Ausführen dazu gebracht, alle Schlüssel zu laden, deren Passphrasen im Schlüsselbund gespeichert sind. Sehr praktischquelle
Für alle, bei denen das oben Genannte nicht funktioniert hat, scheint mein Problem darin zu liegen, dass ich das
UseKeychain yes
&AddKeysToAgent yes
in allen SSH-Schlüsselprofilen / -Verknüpfungen dupliziert habe . Ich habe meine~/.ssh/config
Datei so aktualisiert , dass sie nur einmal deklariert wird. Jetzt werden alle beim Anmelden geladen, ohne dass beim Start nach Passwörtern gefragt wird. Beispiel:quelle
Fügen Sie den öffentlichen Schlüssel hinzu in:
Öffentliche Schlüssel sind normalerweise aktiviert:
Ich hoffe, das hilft
quelle
authorized_keys