Kennwortgeschützter SSH-Schlüssel kann in OS X Mavericks nicht entsperrt werden


18

Ich habe gerade ein Upgrade auf OSX 10.9 durchgeführt und beim Versuch, eine SSH-Verbindung mit Authentifizierung mit öffentlichem Schlüssel herzustellen, werden Sie aufgefordert, mein SSH-Schlüsselkennwort einzugeben.

Ich dachte anfangs, dass das Upgrade dazu führte, dass der Schlüsselbund einige Passwörter vergaß, also gab ich meine erneut ein. Anscheinend war das nicht die Ursache, weil die Aufforderung immer wieder auftauchte.

Ich habe zunächst zwar das falsche Passwort verwendet, aber dabei den folgenden Befehl:

$ ssh-keygen -vvv -y -f id_rsa >| id_rsa.pub
debug3: Incorrect RSA1 identifier
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase:
debug3: Incorrect RSA1 identifier
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
load failed

...funktioniert nicht! Wenn ich versuche, openssl zu benutzen:

$ openssl rsa -in id_rsa -text
Enter pass phrase for id_rsa:
Private-Key: (2048 bit)
modulus:
    00:...

Mein privater Schlüssel wird korrekt entschlüsselt und alle Informationen werden gedruckt.

Was ist mit dem Upgrade auf Mavericks passiert? Wie kann ich meinen privaten Schlüssel wieder verwenden?

Antworten:


22

Anscheinend war der private Schlüssel, den ich auf meinem Computer verwendete, ein alter. Mein Schlüssel enthielt nicht die Verschlüsselungsinformationen, die der privaten Schlüsseldatei hinzugefügt wurden, wenn ich eine neue generiere:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-...

Um das Problem zu lösen, habe ich den Schlüssel mit openssl entschlüsselt:

$ cd ~/.ssh
$ cp id_rsa id_rsa.bck
$ openssl rsa -in id_rsa -out id_rsa

... und dann neu verschlüsselt:

$ openssl rsa -in id_rsa -aes256 -out id_rsa
$ chmod 0600 id_rsa

Und für alle Fälle den öffentlichen Schlüssel neu generieren:

$ ssh-keygen -y -f id_rsa > id_rsa.pub

3

Ich hatte das gleiche problem Ich habe es gelöst, indem ich .ssh / authorized_keys2 nach .ssh / authorized_keys verschoben habe.

Die Datei / etc / sshd_config enthält explizit folgende Zeilen:

\# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
\# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile  .ssh/authorized_keys

Dies ist eine Änderung gegenüber der vorherigen MacOSX-Version?


1
Dieses Problem ist auch ein anderes. In meinem Fall konnte ich meinen privaten Schlüssel nicht entschlüsseln .
GaretJax

2

Gleiches Problem hier, meine Tasten zeigen das gleiche Verhalten.

Ich habe das Problem in diesem Blog-Beitrag nachverfolgt. Ich habe meine SSH-Schlüssel so modifiziert, wie es in diesem Artikel beschrieben wurde, um die Sicherheit zu erhöhen, und es hat unter Mountain Lion funktioniert. http://martin.kleppmann.com/2013/05/24/improving-security-of-ssh-private-keys.html

Ich gehe davon aus, dass Apple etwas mit openssh geändert hat und die "neue" Version das neuere PKCS # 8-Format nicht lesen kann.

Meine Mavericks OpenSSH Version: OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011

Ich habe keinen anderen Mac und kann ihn daher nicht mit der Mountain Lion-Version vergleichen.


/usr/bin/ssh -Vdruckt OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011auf meiner 10.8.0 VM.
Lri

Interessant, wenn Sie Zeit haben, können Sie überprüfen, was "ssh-keygen -vvv -y -f id_rsa" zeigt, wenn Sie einen pkcs # 8-Schlüssel verwenden?
Tripplet

Mein pkcs # 8 Schlüssel, abgeleitet über den gleichen Link, zeigt dies: gist.github.com/cbowns/7359383/raw/…
cbowns

2

Die Verwendung von brew openssl und openssh behebt das PCKS # 8-Problem bei Mavericks.

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 nicht sicher, ob das erzwungene Verknüpfen von openssl irgendetwas an Mavricks kaputt macht. Bisher sind mir keine Probleme aufgefallen.


0

Ich konnte dieses Problem beheben, indem ich einfach Folgendes ausführte:

cd ~/.ssh
mv known_hosts known_hosts.old

Jetzt geh und verbinde dich. Wenn die Standardfrage gefragt wird, geben Sie den Fingerabdrucktyp yes ein.


Vergessen Sie aber nicht, den Fingerabdruck zu überprüfen!
Zigg

1
Dies ist ein anderes Problem als das, was ich gefragt habe. Die bekannte Hosts-Datei hat nichts mit dem hier aufgetretenen Problem zu tun (Entschlüsseln des privaten Schlüssels)
GaretJax

0

Passiert, um dieses Problem zu bekommen. Durch den Versuch, die Chiffre anzugeben, konnte ich dafür sorgen, dass sie gut funktioniert.

Verwenden Sie unter Linux Folgendes, wenn Sie versuchen, Schlüsselpaare zu generieren:

ssh-keygen -t rsa -Z aes256

Der jetzt mit aes256 verschlüsselte öffentliche Schlüssel kann von ssh unter OSX korrekt erkannt werden (hier ist mein Schlüssel 10.12.1).


0

Sie können einen PuTTY-Schlüssel in einen OpenSSL OS X-Schlüssel konvertieren:

puttygen putty.ppk -O private-openssh -o osx.key

Geben Sie die Passphrase ein und Sie sind fertig.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.