OSX-ssh-agent: kein Einfügen von Passwörtern und Problem mit PKCS # 8?

37

Ich verwende ssh auf meinem Rechner und habe eine lange, nicht menschenfreundliche Passphrase eingerichtet, die in meinem Passwortmanager gespeichert wird. Was mich jedes Mal verrückt macht, ist, dass ich nicht in das unten abgebildete Fenster einfügen kann. Ich weiß das Remember password in my keychain Option und verwenden Sie es. Manchmal muss ich jedoch einen neuen eingeben. Warum kann ich nicht in ein Passwortfeld einfügen?

Dasselbe gilt für das Dialogfeld, das beim Einstecken verschlüsselter Festplatten angezeigt wird.

ssh-agent window

Einige Updates:

  1. Ich habe herausgefunden, wie ich den Dialog umgehen kann: einfach verwenden ssh-add -K ~/.ssh/id_rsaund dann kann ich die Passphrase in das Terminal einfügen.
  2. Wurde matt mcmanus erwähnt, wird mein Schlüssel mit verschlüsselt pkcs8 was auf Yosemites ssh-Agent gebrochen wurde. Das hat nichts mit dem oben genannten Problem zu tun, ist mir aber gleichzeitig aufgefallen (lesen Sie Hier ).
  3. mit ssh-add noch immer nicht behebt dies für verschlüsselte Festplatten.
joni
quelle
Sie sollten eine der folgenden guten Antworten akzeptieren. Sie sollten auch vermeiden, mehrere Fragen in einem einzigen Beitrag zu stellen.
Alain O'Dea
1
@ AlainO'Dea Zuerst sollte ich, das ist eine alte Frage und ich habe es vergessen. Zweitens: Zum Zeitpunkt der Anfrage war nicht klar, dass das zweite Problem (gebrochenes PKCS) auftauchen würde, siehe Bearbeitungshistorie.
joni

Antworten:

22
  1. Der Dialog für den ssh-agent kann umgangen werden, indem der Schlüssel in der Konsole / im Terminal hinzugefügt wird: ssh-add ~/.ssh/id_rsa. Sie können das Passwort dann in das Terminal einfügen. Fügen Sie auch das hinzu -K Option zu ssh-add speichert es gemäß Oliver Lacans Kommentar im Schlüsselbund.
  2. Wie Mattmcmanus sagte: id_rsa Verschlüsselung unter Verwendung von PKCS scheint auf OSX Mavericks ssh-agent defekt zu sein. Die schnelle Problemumgehung besteht darin, die Schlüsseldatei zu entschlüsseln und erneut mit der Standardprozedur ssh zu verschlüsseln (Methode zur Schlüsselableitung: MD5 ...)

mv id_rsa id_rsa.pkcs
openssl rsa -in id_rsa.pkcs -out id_rsa
# enter passphrase to decrypt
chmod 0600 id_rsa
ssh-keygen -f id_rsa -p
# enter passphrase to encrypt again
joni
quelle
3
Während die Antwort von Joni ausgezeichnet ist, würde ich empfehlen ssh-add -K ~/.ssh/id_rsa welche "Passphrasen in Ihrem Schlüsselbund speichern" gem ssh-add --help. Dies verhindert, dass Sie erneut laufen müssen ssh-add jedes Mal, wenn Sie eine neue Shell-Registerkarte öffnen oder wenn Sie den Computer neu starten.
Olivier Lacan
2

Ist es ein PKCS # 8-Schlüssel und sind Sie auf Außenseiter? Wenn ja, scheint das völlig kaputt zu sein. Ich bin nicht sicher, ob es eine Lösung gibt.

mattmcmanus
quelle
1
warum sollte das sein? Das Problem ist bisher nur, dass das Kennwortfeld im Dialogfeld das Einfügen nicht akzeptiert. Dies war bereits am 10.8 vorhanden, aber wegen des Updates auf 10.9 muss ich die Passphrase erneut eingeben.
joni
OK, du scheinst recht zu haben ... schau dir meine Antwort an.
joni
2

Unter Mac OS X El Capitan wird der ssh-add Befehl kann dies mit einem -K Möglichkeit:

$ ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/your.username/.ssh/id_rsa:

Sie können Ihr Passwort in diese Eingabeaufforderung mit einfügen ⌘-V .

Eine Sitzung dafür sieht so aus:

$ ssh-add -K ~/.ssh/id_rsa
Enter passphrase for /Users/your.username/.ssh/id_rsa:
Passphrase stored in keychain: /Users/your.username/.ssh/id_rsa
Identity added: /Users/your.username/.ssh/id_rsa (/Users/your.username/.ssh/id_rsa)

Relevanter Auszug aus SSH-ADD (1) aufgewachsen mit man ssh-add :

-K Beim Hinzufügen von Identitäten wird jede Passphrase auch in Ihrem Schlüsselbund gespeichert. Beim Entfernen von Identitäten mit -d wird jede Passphrase aus Ihrem Schlüsselbund entfernt.

INFOSEC HINWEIS : Ihr Passwort wird nicht in der Shell angezeigt, sondern wird über die Zwischenablage allen laufenden Anwendungen angezeigt. Eine Autotyp-Lösung wäre sicherer.

Alain O'Dea
quelle
1

Sie können ein Skript wie folgt in AppleScript Editor ausführen:

tell application "System Events" to tell process "SecurityAgent"
    set value of text field 2 of scroll area 1 of group 1 of window 1 to "pa55word"
    click button 2 of group 2 of window 1
end tell
Lri
quelle
1
danke, dies wird für die "verschlüsselten Festplatten" -Dialoge helfen Aber warum hat Apple dieses Feld für das Einfügen deaktiviert?
joni
Praktisch, aber ja, glaube nicht, dass dies das PKCS # 8-Problem löst. Selbst wenn Sie das richtige Passwort eingeben, wird die Passphrase falsch angezeigt.
Bob Aman
Macht keinen Sinn. Ihr streng geheimes Passwort steht nun jedem offen. Aus diesem Grund verwendet der TS einen Passwortmanager, um ihre Passwörter zentral und geschützt zu gestalten.
whaefelinger
1
Funktioniert nicht bei El Capitan. Zuerst fordert es den Skript-Editor auf, Assistive Control zu erhalten System Events got an error: Script Editor is not allowed assistive access. Einmal ist das unter erlaubt Systemeinstellungen | Sicherheit & amp; Privatsphäre Ich bekomme System Events got an error: Can’t get window 1 of process "SecurityAgent". Invalid index.
Alain O'Dea
1

Ich hatte das gleiche Problem. Nachdem ich diese Frage gefunden hatte, schaute ich weiter und fand an anderer Stelle eine Antwort. Dies ist eine ältere Frage, aber sie hat keine akzeptierten Antworten und steht immer noch weit oben in Suchlisten. (nicht sicher von der Stackexchange-Etikette darauf).

RE nicht in der Lage zu kopieren / einfügen: Es ist anscheinend beabsichtigt. Die Absicht ist, den gesamten Zugriff auf das Feld aus der Zwischenablage zu verhindern, um zu verhindern, dass ein schädliches Programm Kennwortboxen abfragt. Ich denke, das Einfügen (und nicht Schneiden) sollte erlaubt sein, aber vielleicht gibt es einen technischen Grund.

Für das ssh-agent Zeug, ab (mindestens) Yosemite, das -K Option in ssh-add -K ~/.ssh/blah macht das, was Sie möchten - geben Sie das Kennwort einmal ein, es wird in Ihrem Schlüsselbund gespeichert, und der ssh-agent wird Sie transparent entsperren. Um sicherer zu sein, stelle ich meine SSH-Passphrasen in einen separaten Schlüsselbund, der sich regelmäßig sperrt.

PerilousApricot
quelle
Hast du die Möglichkeit, einen Link zu der Antwort zu teilen, die du gefunden hast?
John Carney
Das tut mir leid! Für das ssh-agent Zeug bin ich gestolpert developer.apple.com/library/mac/documentation/Darwin/Reference/…
PerilousApricot
0

Die Verwendung von brew openssl und openssh behebt das Problem.

brew update
brew install openssl
brew link openssl --force
brew install openssh

# confirm correct bins are being used
# both should be located in /usr/local/bin
which openssl
which openssh

# add key back to keychain
ssh-add ~/.ssh/id_rsa

Ich bin mir nicht sicher, ob die Zwangsverknüpfung von openssl etwas auf Mavricks bricht. Bisher sind mir keine Probleme aufgefallen.

simple10
quelle
1
Es gibt kein (längeres) brew Formel für openssh.
Adam Liter
Es gibt noch brew tap homebrew/dupes jedoch. Das heißt, diese Schritte schienen dieses Problem für mich nicht zu lösen.
Bob Aman
@ simple10 Diese Antwort liefert wenig bis keinen Wert. Sie sollten mindestens die Version von openssl / openssh angeben, die das Problem behebt. Bitte erläutern Sie auch, warum dies so wäre.
whaefelinger