Früher erinnerte es sich an die Passphrase, jetzt wird ich jedes Mal danach gefragt.
Ich habe gelesen, dass ich den öffentlichen Schlüssel mit diesem Befehl neu generieren muss, was ich getan habe:
ssh-keygen -y -f id_rsa > id_rsa.pub
aber es hat nichts behoben.
Wie kann ich macOS wieder an meine Passphrase erinnern lassen?
ssh
Modul in nicht aktiviert istzpretzorc
. Unter macOS ist dies ohnehin nicht erforderlich. Wenn es aktiviert ist, werden Sie auch nach dem Hinzufügen zur Eingabe Ihres Passworts aufgefordertUseKeychain
.ssh -v ...
Antworten:
In der neuesten Version von macOS (10.12.2) ist dies einfach zu beheben. Bearbeiten Sie einfach Ihre
~/.ssh/config
und aktivieren Sie dieUseKeychain
Option:Es besteht keine Notwendigkeit, etwas anderes zu ändern. Jetzt funktioniert alles so, wie es vor den letzten Updates funktioniert hat. Sie müssen keine Schlüssel hinzufügen
ssh-agent
.Bearbeiten: Möglicherweise müssen Sie Ihre Passphrase noch einmal eingeben. Wenn Sie es nicht wissen, befolgen Sie diese Anweisungen , um es anzuzeigen.
quelle
Host *
Block (fast) immer am Ende Ihrer~/.ssh/config
Datei stehen sollte. Wennssh
nach Einstellungen gesucht wird, wird der erste gefundene Wert verwendet. Wenn Sie also den Platzhalterblock an das Ende setzen, fungiert er als eine Reihe von Standardwerten. Sie können Einstellungen für bestimmte Hosts außer Kraft setzen, indem Sie sie früher in der Datei angeben.Host *
Überschrift nicht. Fügen Sie einfach die einzelne ZeileUseKeychain yes
oben an,.ssh/config
wenn dies für alle Hosts gelten soll.Ich hatte das gleiche problem Der MacOS Sierra-Schlüsselbund fragt ständig nach der Passphrase. Ihre id_rsa sollte aus Sicherheitsgründen mit einer Passphrase verschlüsselt sein. Versuchen Sie dann, es dem Schlüsselbund hinzuzufügen
ssh-add -K ~/.ssh/id_rsa
Wenn sich Ihr Schlüssel in einem anderen Ordner befindet,
~/.ssh
ersetzen Sie ihn durch den richtigen Ordner.Keychain kennt jetzt Ihren SSH-Schlüssel und hoffentlich funktioniert jetzt alles (meiner hat es getan)
quelle
ssh-add
mit dieser-A
Option anrufen, wird im MacOS-Schlüsselbund nach Kennwörtern für die betreffenden Identitäten gesucht. Ich glaube, es wird Sie auffordern, wenn die Passwörter nicht im Schlüsselbund sind.Dies hat mein ähnliches Problem behoben:
Dadurch werden Passphrasen in Ihrem Schlüsselbund gespeichert.
Update (danke @EasyCo): Dies funktioniert, bleibt aber zwischen Neustarts nicht erhalten. Die Lösung von @jukka-suomela auf dieser Seite funktioniert über Neustarts hinweg. Diese Antwort finden Sie hier:
https://superuser.com/a/1158050/234685
quelle
Ich musste nur einmal die richtige Passphrase eingeben und es fing an zu funktionieren. Das Problem war, dass ich mich nicht an meine ursprüngliche SSH-Passphrase erinnerte, diese jedoch mithilfe der folgenden Schritte von Github wiederherstellte :
quelle
Keine der oben genannten Lösungen hat funktioniert, nachdem Sierra über El Capitan auf einem neuen MacBook Pro installiert wurde. Sierra speichert keine SSH-Schlüssel im Schlüsselbund.
Zwei Lösungen haben für mich funktioniert. Einer ist, den Befehl
ssh-add -A &> /dev/null
zu ~ / .bash_profile hinzuzufügen. Jedes Mal, wenn Sie das Terminal öffnen, wird dieser Befehl ausgeführt (der&> /dev/null
Teil sendet die Ausgabe des Befehls an die Datei / dev / null).Eine kompliziertere, aber etwas raffiniertere Lösung besteht darin, mit dem Befehl, der bei jedem Booten des Betriebssystems ausgeführt wird, eine Liste zu erstellen, wie unter Speichern von SSH-Schlüsseln im MacOS Sierra-Schlüsselbund beschrieben . Dies beinhaltet die Verwendung von Xcode zum Erstellen der Datei.
quelle
Eine Lösung besteht darin, Ihrer ~ / .ssh / config-Datei Folgendes hinzuzufügen:
Entnommen aus: https://www.reddit.com/r/osx/comments/52zn5r/difficulties_with_sshagent_in_macos_sierra/ Siehe auch: https://apple.stackexchange.com/a/264974/3810
quelle
Bad configuration option: usekeychain
Fehler erwähnt, den ich mit UseKeychain erhalte (egal wie groß er ist). Aber ich war die Lage , es durch Entfernen Arbeiten zu bekommen nur diese Zeile und Verlassen AddKeysToAgent und Identity (Sie haben noch die Passphrase zum ersten Mal eingeben). Dies ist mit macOS Sierra 10.12.6.which ssh
um sicherzustellen , dass Sie verwenden ,/usr/bin/ssh
und nicht eine Version von Fink oder MacPorts, die unter so etwas wie wäre/usr/local/bin/ssh
oder/opt/local/bin/ssh
Heute Morgen hatte ich das gleiche Problem wie Sie, nachdem ich auf Sierra aktualisiert hatte. In meinem Fall wurde die
id_rsa
Datei verschlüsselt und nach dem Entschlüsseln funktionierte sie wie ein Zauber.id_rsa
Datei mit dem folgenden Befehl verschlüsselt ist:cat ~/.ssh/id_rsa | head -2
Proc-Type: 4,ENCRYPTED
, ist es verschlüsselt und Sie können versuchen, es zu entschlüsselnid_rsa
! Verwenden Sie den Befehlcp ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa.decrypted
rm ~/.ssh/id_rsa
) und ersetzen Sie ihn durch den entschlüsselten:mv ~/.ssh/id_rsa.decrypted ~/.ssh/id_rsa
Nach diesen Schritten sollten Sie ssh wieder verwenden können.
quelle
Ich habe hier mehrere Antworten ausprobiert, hatte aber immer noch Probleme mit der Weitergabe von Remote-Schlüsseln (z. B. bei der Verwendung von capistrano). Um das Problem zu lösen, habe ich den Technote von Apple gelesen und diese Datei zu meiner Konfigurationsdatei gemacht. Nie mehr nach meinem Passwort fragen!
https://developer.apple.com/library/content/technotes/tn2449/_index.html
quelle
Ich hatte dieses Problem auch, als ich versuchte, Code mit Capistrano bereitzustellen . Sehr frustrierend. Ich kenne zwei Methoden, um dieses Problem zu lösen.
Methode 1: Fügen Sie dem SSH-Agenten alle bekannten Schlüssel hinzu.
Eine Lösung, die ich gefunden habe, ist die Ausführung
ssh-add
mit der-A
Option, die dem SSH-Agenten alle bekannten Identitäten hinzufügt, wobei alle in Ihrem Schlüsselbund gespeicherten Passwörter verwendet werden:Das funktioniert jetzt, bleibt aber nach einem Neustart nicht erhalten. Wenn Sie sich also nie wieder darum kümmern möchten, öffnen Sie einfach die
~/.bash_profile
Datei Ihres Benutzers wie folgt:Und füge diese Zeile unten hinzu:
Wenn Sie jetzt ein neues Terminalfenster öffnen, sollte alles in Ordnung sein!
Methode 2: Fügen Sie dem Agenten nur SSH-Schlüssel hinzu, die sich im Schlüsselbund befinden .
Während die
ssh-add -A
Option für die meisten einfachen Fälle funktionieren sollte, stieß ich kürzlich auf ein Problem, bei dem 6-7 Vagrant-Boxen (die SSH-Schlüssel / -Identitäten für den Zugriff verwenden) auf einem Computer eingerichtet wurden, zusätzlich zu den am häufigsten verwendetenid_rsa.pub
.Kurz gesagt, ich wurde aufgrund zu vieler fehlgeschlagener Versuche, die auf SSH-Schlüsseln / -Identitäten basierten, von einem Remote-Server gesperrt, da der Serverzugriff auf einem Kennwort beruhte und SSH-Schlüssel / -Identitäten SSH-Schlüssel / -Identitäten sind. Also hat der SSH-Agent alle meine SSH-Schlüssel ausprobiert , ist fehlgeschlagen und ich konnte nicht einmal zur Passwortabfrage gelangen.
Das Problem ist, dass
ssh-add -A
jeder einzelne SSH-Schlüssel / jede einzelne SSH-Identität willkürlich zum Agenten hinzugefügt wird, auch wenn dies nicht erforderlich ist. wie im Fall von Vagrant-Boxen.Meine Lösung nach vielen Tests war wie folgt.
Wenn Sie Ihrem Agenten mehr SSH-Schlüssel / -Identitäten hinzugefügt haben, als Sie benötigen,
ssh-add -l
löschen Sie sie zunächst wie folgt aus dem Agenten:Danach starten Sie den SSH-Agenten wie folgt als Hintergrundprozess:
Jetzt wird es komisch und ich bin mir nicht sicher warum. In einigen Fällen können Sie
~/.ssh/id_rsa.pub
dem Agenten den Schlüssel / die Identität wie folgt hinzufügen :Geben Sie Ihre Passphrase ein, drücken ReturnSie und los geht's.
In anderen Fällen reicht es jedoch aus, dies auszuführen, um den Schlüssel / die Identität hinzuzufügen:
Wenn das alles geklappt hat, geben
ssh-add -l
Sie ein und Sie sollten einen einzigen SSH-Schlüssel / eine Identität sehen.Alles gut? Jetzt öffne dein
.bash_profile
:Und füge diese Zeile unten hinzu; kommentiere oder entferne die
-A
Version, wenn du das hast:Dadurch kann der SSH-Schlüssel / die SSH-Identität bei jedem Start / Neustart erneut auf den SSH-Agenten geladen werden.
UPDATE: Apple hat jetzt eine
UseKeychain
Option zu den offenen SSH-Konfigurationsoptionen hinzugefügt und zieht auchssh-add -A
eine Lösung in Betracht .Seit macOS Sierra 10.12.2 hat Apple (ich nehme an) eine
UseKeychain
Konfigurationsoption für SSH-Konfigurationen hinzugefügt. Das Überprüfen der Manpage (viaman ssh_config
) zeigt die folgenden Informationen:Was darauf hinausläuft, dass Apple die Lösung entweder wie in diesem Open Radar-Ticket erläutert
ssh-add -A
zu Ihrer hinzufügt oder als eine der Optionen in einem pro Benutzer hinzufügt ..bash_profile
UseKeychain
~/.ssh/config
quelle
Die Antwort von Jukka Suomela ist richtig, aber wenn Sie
openssh
installiert von verwendenhomebrew
, müssen Sie es auch deinstallieren mit:... um zurück zum Systemstandard zu wechseln openssh, da homebrew keinen
UseKeychain
ssh config-Eintrag unterstützt.quelle
Ich habe alle hier vorgeschlagenen Lösungen ausprobiert, aber auf meinem Mac ist kein Schlüsselbund eingerichtet.
Das Hinzufügen der folgenden Zeile in der obersten
.ssh/config
Datei sowohl auf dem lokalen als auch auf dem entfernten Computer hat bei mir funktioniert.quelle
Sie benötigen eine
.plist
hinzugefügte Datei,~/Library/LaunchAgents/
um siessh-add -A
bei jedem Start von macOS ausführen zu können.Es gibt einen einzigen Befehl, der dies ausführt (vom SSH-Schlüssel-in-MacOS-Sierra-Schlüsselbund ):
quelle