Der Kennwortdialog wird für den kennwortlosen privaten SSH-Schlüssel angezeigt

Ich habe meinen privaten SSH-Schlüssel in ~/.ssh/id_rsa installiert. Dem Schlüssel ist keine Passphrase zugeordnet, aber wenn ich mich mit einem SSH-Server verbinde, erscheint ein Dialog und fordert mich auf, mein Passwort einzugeben, um auf die id_rsa-Datei zuzugreifen.

Wenn ich den Dialog abbreche oder eine leere Passphrase eingebe und auf OK klicke, fordert mich das Terminal zur Eingabe einer Passphrase auf.

Ich habe überprüft, dass der Schlüssel gültig ist und kein Passwort erfordert, indem ich mich mit demselben Schlüssel über andere Computer verbunden habe.

Etwas Seltsames an meiner speziellen Einrichtung verursacht das Problem, aber ich kann es nicht herausfinden. Ich verwende derzeit OSX 10.7.1, aber das gleiche Problem trat mit OSX 10.6.8 auf

Haben Sie versucht, im Authentifizierungsdialog "Passwort in meinem Schlüsselbund speichern" auszuwählen?
Ja, ich habe versucht, das Kontrollkästchen „Erinnern“ zu aktivieren. Ich habe auch versucht, ein leeres Passwort zu verwenden und auf OK zu klicken und das Dialogfeld einfach abzubrechen. Aber all dies scheint nebensächlich zu sein: Es sollte mich NICHT zur Eingabe einer Passphrase auffordern, da dem Schlüssel keine Passphrase zugeordnet ist. Es ist ein privater, passwortloser Schlüssel.
Ah ich sehe. Bitte reichen Sie einen Fehlerbericht unter developer.apple.com/bugreporter ein , um sicherzustellen, dass Apple weiß, dass dies ein Problem für Sie ist.
In meinem Fall stellte sich heraus, dass ich den privaten Schlüssel mit einer Passphrase versehen hatte . Es ist so lange her, dass ich vergessen hatte, dass es noch am Schlüsselbund war. Als ich die Dateien auf einen neuen Computer verschoben habe, konnte ich nicht herausfinden, warum sie nicht funktionierten. Zum Glück hatte ich die Passphrase noch in meinen Notizen. D'oh!

Antworten (3)

Ich hatte das gleiche Problem. Wenn jedoch ein neuer passwortloser privater Schlüssel generiert wird, verwenden Sie den folgenden Befehl:

ssh-keygen -b 1024 -t rsa -f id_rsa -P ""

Ich habe die Passwortabfrage nicht mehr gesehen.

Außerdem konnte ssh-add den alten Schlüssel nicht hinzufügen, fügte aber wie erwartet den neuen hinzu.

Ich habe den alten Schlüssel 2009 auf Leopard generiert und dabei die Version von OpenSSL verwendet, die ich mir damals geholt, gebaut und installiert hatte (dieser Mac ist gestorben, daher kann ich mich nicht anmelden und überprüfen, was ich ausgeführt habe). Etwas an diesem Schlüssel war mit den nativen SSL-Bibliotheken von Lion nicht kompatibel.

Ich habe meinen alten Schlüssel gesichert. Wenn also jemand einige Überprüfungen vorschlagen möchte, um die spezifischen Eigenschaften des Schlüssels zu identifizieren, lassen Sie mich wissen, was überprüft werden soll, und ich werde berichten.

Ein weiterer Hinweis: Mir ist aufgefallen, dass meine alte Datei id_rsa.pub erweiterte Attribute hatte. dh die Berechtigungs-Flags sahen so aus: r--------@ statt r--------

xattr -l id_rsa.pub.old

ist zurückgekommen:

com.macromates.caret: {
    column = 0;
    line = 1;
}

cruft übrig von TextMate. Ich weiß nicht, ob das Entfernen das Problem behoben hätte, ohne dass ich den Schlüssel ersetzen müsste. Ich denke, es ist unwahrscheinlich.

Falls Sie (zukünftiger Leser) dasselbe sehen, können Sie das erweiterte Attribut wie folgt entfernen:

 xattr -d com.macromates.caret id_rsa.pub.old

Sie können verhindern, dass TextMate sie hinzufügt, indem Sie zuerst TextMate beenden und dann diesen Befehl ausführen:

defaults write com.macromates.textmate OakDocumentDisableFSMetaData 1
Meine Originaldatei hatte keine erweiterten Eigenschaften, wurde aber von putty-keygen unter Windows generiert; Als ich ein neues privates/öffentliches Schlüsselpaar ohne Passphrase neu erstellte, funktionierte es wie ein Zauber.

Für mich habe ich festgestellt, dass ein verirrter Text oder eine Unvollkommenheit in der Schlüsseldatei diese Eingabeaufforderung verursachen kann. Das neuste für mich war folgendes:

-----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY-----

Beachten Sie den zusätzlichen Platz dort. Das führte dazu, dass diese bizarre Passwortabfrage auf diesem passwortlosen Schlüssel erschien.

Ältere Versionen des sshDienstprogramms fragen jedes Mal nach einer Passphrase, wenn es die Schlüsseldatei nicht interpretieren kann. Wenn ssh nach einer Passphrase für eine Schlüsseldatei fragt, die keine haben sollte, bedeutet dies wahrscheinlich, dass die Schlüsseldatei in irgendeiner Weise beschädigt ist.

$ dd if=/dev/urandom of=randokey bs=1024 count=1
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 0.000380502 s, 2.7 MB/s
$ chmod 600 randokey
$ ssh -i randokey localhost
Enter passphrase for key 'randokey':

Die OpenSSH-Betreuer haben dieses Verhalten irgendwann verbessert. Die mit macOS High Sierra gelieferte Version sshkennt den Unterschied zwischen einem verschlüsselten Schlüssel und einem beschädigten Schlüssel:

$ ssh -i randokey localhost
Load key "randokey": invalid format
Password: ^C

$ ssh -V
OpenSSH_7.6p1, LibreSSL 2.6.2
$ uname -a
Darwin [hostname] 17.4.0 Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64 x86_64