Mein Computer hat kürzlich aufgehört, eingehende Authentifizierung mit öffentlichem Schlüssel zu akzeptieren. Ich habe einen Ubuntu 11.04-Desktop, in den ich von einem Windows-Computer aus einspringe. Ich benutze Kitt mit Festzug. Ich kann eine Verbindung nur mit der interaktiven Kennwortauthentifizierung herstellen, nicht mit meinem RSA-Schlüssel, den ich eingerichtet habe.
Ich habe bereits überprüft, ob der Schlüssel in ~ / .ssh / authorized_keys aufgeführt ist. Wie behebe ich das und was überprüfe ich?
ssh
authentication
Andrew Redd
quelle
quelle
~
,~/.ssh
und~/.ssh/authorized_keys
nur von Ihnen beschreibbar sind (insbesondere keine Gruppe Schreibberechtigung). Suchen Sie/var/log/auth.log
nach Protokolleinträgen, die zum Zeitpunkt Ihrer Anmeldeversuche erstellt wurden. Kopieren Sie sie und fügen Sie sie in Ihre Frage ein (wenn Sie möchten, können Sie die Namen aus Datenschutzgründen ändern). Überprüfen Sie auch, ob das Problem ausschließlich auf dem Server liegt oder nicht: Kopieren Sie den privaten Schlüssel auf den Linux-Computer (Sie müssen die private Schlüsseldatei von PuTTY in das OpenSSH-Format konvertieren) und prüfen Sie, ob diesssh localhost
funktioniert.Antworten:
Wenn die Authentifizierung mit öffentlichem Schlüssel nicht funktioniert: Stellen Sie sicher, dass Ihr Ausgangsverzeichnis (
~
), das~/.ssh
Verzeichnis und die~/.ssh/authorized_keys
Datei auf der Serverseite nur von ihrem Eigentümer beschreibbar sind . Insbesondere darf keiner von ihnen von der Gruppe beschreibbar sein (auch wenn der Benutzer alleine in der Gruppe ist).chmod 755
oderchmod 700
ist ok,chmod 770
ist nicht.Was ist zu überprüfen, wenn etwas nicht stimmt?
ssh -vvv
das Programm aus , um viele Debugging-Ausgaben zu sehen. Wenn Sie eine Frage stellen, warum Sie keine Verbindung zu ssh herstellen können, fügen Sie diese Ausgabe hinzu (Sie möchten möglicherweise Host- und Benutzernamen anonymisieren)./var/log/auth.log
.quelle
Ich traf auf dasselbe und stellte schließlich fest, dass es daran lag, dass ich mein Home-Verzeichnis verschlüsselt hatte. SSH kann die Datei "authorized_keys" erst lesen, wenn Sie sich angemeldet haben. Daher müssen Sie sich zunächst mit einem Kennwort authentifizieren. Weitere Informationen zum verschlüsselten Basisverzeichnis finden Sie im Abschnitt über den folgenden Link:
https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Encrypted_Home_Directory
quelle
Wenn Sie die Berechtigungen für die Verzeichnisse überprüfen und ein "." Direkt danach haben Sie möglicherweise Selinux aktiviert, was den Schlüsselaustausch und die manuelle Kennwortidentifizierung beeinträchtigt.
Sie können SELinux deaktivieren, um Fehler zu beheben, indem Sie die folgenden Anweisungen befolgen: http://www.centos.org/docs/5/html/5.1/Deployment_Guide/sec-sel-enable-disable-enforcement.html oder einfach die Datei / etc bearbeiten / selinux / config und ändere es von "erzwingen" auf "deaktiviert".
Hoffe das hilft.
quelle
chmod 600 ~/.ssh/authorized_keys
- die Datei war gruppenbeschreibbar. (via pyrosoft.co.uk/blog/2013/01/12/… )restorecon ~ -R
Ausgangsverzeichnis ( ) ist ein guter Ausgangspunkt.Ich würde sicherstellen, dass Sie Ihre Einstellungen in / etc / ssh / sshd_config korrekt haben.
Um nur die Verwendung von PKI zu erzwingen und Passwörter zu verbieten, suchen Sie die Zeile
Kommentieren Sie es in Ihrer Datei aus und setzen Sie es auf
Ich würde auch die Balance der Einstellungen durchlesen, um sicherzustellen, dass sie sinnvoll sind. Stellen Sie insbesondere sicher, dass Sie RSA-Schlüssel verwenden, da bekannt ist, dass DSA gefährdet ist.
quelle
Eine mögliche Ursache für das Problem ist, dass Sie DSA-Schlüssel haben, SSH jedoch (anscheinend) standardmäßig RSA-Schlüssel benötigt. Ich habe das Problem beim Upgrade auf 16.04. Sie können hier mehr sehen , aber die kurze Antwort lautet
~/.ssh/config
:quelle
Ich habe dieses Problem behoben, indem ich "PasswordAuthentication yes" in / etc / ssh / sshd_config auskommentiert habe.
quelle
Aufgrund einer Notwendigkeit zur Fehlerbehebung bei der Kommunikation zwischen zwei verschiedenen Computern hatte ich
~/.ssh
auf der Clientseite zwei private Schlüssel .Anstatt jeden Server-Host mit dem entsprechenden privaten Schlüssel zu konfigurieren,
~/.ssh/identity
wie ich es hätte tun sollen, hatte ich den sekundären (und in diesem Fall falschen) Schlüssel für alle Hosts konfiguriert:Durch die Korrektur wurde
~/.ssh/identity
das Problem behoben:quelle
Ich hatte nur das gleiche Problem, aber das Ändern der Berechtigungen mit hat
chmod
nicht geholfen, da sich herausstellte, dass ich nicht im Besitz der~/.ssh/authorized_keys
Datei war. Sie können den Besitz des.ssh
Verzeichnisses ändern mit:quelle
Irgendwie hat das bei mir geklappt:
root @ kaiser: ~ # vim / etc / ssh / sshd_config
Ändern Sie diese Zeile von Ja in Nein. 28 StrictModes Nein
Versuch es noch einmal
sysadmin @ suselinux1: ~> con sysadmin kaiser Willkommen bei Ubuntu 12.04.1 LTS (GNU / Linux 3.2.0-25-generic i686)
Letzte Anmeldung: Fr 9.11. 15:40:11 2012 von 10.1.3.25 Uhr sysadmin @ kaiser: ~ $ Datum vie 9.11
quelle
sshd
Dokumente zu erstellen , die nicht genau in die Kategorie "Lesen am schönen Samstag" fallen