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
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
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 ssh
Dienstprogramms 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 ssh
kennt 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
Chris Page
Jeremy T
Chris Page
Hey Wolff