Nach dem Upgrade auf Fedora 23 funktioniert die kennwortlose (auf öffentlichen Schlüsseln basierende) Authentifizierung in SSH nicht mehr: Wenn Sie versuchen, eine SSH-Verbindung zu einem Host herzustellen, werden Sie auf dem Remote-Host zur Eingabe meines Kennworts aufgefordert. Ich kann meinen privaten SSH-Schlüssel nicht verwenden. Alles hat gut funktioniert mit Fedora 22.
Mein öffentlicher Schlüssel ist ein DSA-Schlüssel ( ~/.ssh/id_dsa.pub
). Ich benutze OpenSSH 7.1 ( openssh-7.1p1-5.fc23.x86_64
).
Wie kann ich sicherstellen, dass die kennwortlose Authentifizierung wieder ordnungsgemäß funktioniert?
ssh -Q
. Hier wird gefragt, wie ein SSH-Fehler behoben werden kann. Ich fand einige der Materialien unter superuser.com/q/962918/93541 und an anderer Stelle hilfreich bei der Identifizierung dieser Lösung, aber die Antwort dort beschreibt, wiessh -Q
diese Frage zu verwenden ist, und beantwortet sie nicht (z. B. erklärt sie nicht, wie sie zu beheben ist Dieses Problem), also meiner Meinung nach ist es kein Trottel. Das unter Unix und Linux ist sehr ähnlich. Ich wünschte, ich hätte das früher gesehen. Nochmals vielen Dank für die Links!Antworten:
Dies ist das Ergebnis eines Upgrades auf OpenSSH 7.0. In den Versionshinweisen für OpenSSH 7.0 heißt es : "Die Unterstützung für ssh-dss-Host- und -Benutzerschlüssel ist zur Laufzeit standardmäßig deaktiviert."
Die Lösung besteht darin,
~/.ssh/config
auf jedem Client-Computer (auf jedem Computer, auf dem Sie den SSH-Client ausführen) die folgende Zeile hinzuzufügen :Wenn der Server OpenSSH 7.0 oder neuer verwenden, werden Sie auch brauchen Sie diese Zeile hinzufügen
/etc/ssh/sshd_config
auf jedem Server - Maschine.Alternativ können Sie einen völlig neuen SSH-Schlüssel generieren und ihn auf jedem Server, bei dem Sie sich jemals anmelden möchten, zu Ihrer authorized_keys-Datei hinzufügen. Ich empfehle die Verwendung von RSA , um Kompatibilitätsprobleme zu vermeiden. Ich empfehle ECDSA nicht, da offenbar der Gnome-Keyring-Daemon SSH-Schlüssel vom Typ ECDSA nicht automatisch aufnimmt.
Anmerkung der Redaktion: Warum haben die OpenSSH-Leute DSA-Schlüssel deaktiviert? Ich weiß es nicht. An der Sicherheit der DSA-Schlüssel (ssh-dss) ist meines Erachtens nichts auszusetzen. Die OpenSSH-Webseite behauptet, dass ssh-dss schwach ist, aber meines Wissens ist 1024-Bit-ssh-dss nicht schwächer als 1024-Bit-RSA, und 1024-Bit-RSA-Schlüssel sind nicht deaktiviert.
quelle
Meine zwei Cent
Als Bearbeitungsdatei
.ssh/config
, um dies zu ermöglichen, scheine ich eine nicht so gute Idee zu seinErstellen Sie mit dem zuletzt verwendeten Tool einen neuen Schlüssel.
Kopieren Sie dann den neuen öffentlichen Schlüssel (in die Zwischenablage)
Melden Sie sich ein letztes Mal mit dem alten Schlüssel an:
Aktualisieren Sie anschließend
@host
dieauthorized_keys
Datei, indem Sie Ihren neuen Pubkey hinzufügen und sich abmeldenpaste, dann Ctrl+D
Mit neuem Schlüssel unter Verwendung der Standardsyntax protokollieren:
Aktualisieren Sie dann
@host
dieauthorized_keys
Datei, indem Sie Ihren alten Pubkey entfernen (ich verwende,sed -e 1d -i .ssh/authorized_keys
wenn mein alter Pubkey in der Zeile1
dieser Datei steht).Ich schlage vor, Sie SSH-Server zu aktualisieren, wenn Sie können.
Testen Sie, ob der alte Schlüssel nicht mehr funktioniert.
Das muss nicht klappen ;-)
Sie können sogar noch einmal überprüfen, ob alles in Ordnung ist:
quelle
~/.ssh/config
nicht für eine so gute Idee halten.~/.ssh/config
an sich befassen , sondern mit der Idee, DSA zuzulassen. Danke fürs Erklären. Das macht Sinn. (Ich glaube, ich habe bereits in meiner Antwort und meinen Kommentaren angesprochen, warum ich diese Empfehlung für rätselhaft halte , aber ich werde nicht versuchen, das hier zu diskutieren.).config
macht es Ihnen möglich,ssh
für eine lange Zeit und sogar im Nebel auszuführen, dass Sie schwache Algorithmen verwenden. Wenn Sie die-o Pubkey...
Befehlszeile verwenden, werden Sie nicht verzeihen, dass es etwas zu aktualisieren gibt .