Einführung
Der Fehler „SSH-Berechtigung verweigert“ wird angezeigt, nachdem berechtigungsbezogene Einstellungen auf dem SSH-Server geändert wurden. Übliche Szenarien umfassen eine neue Paketinstallation oder die Erstellung neuer Benutzer.
In diesem Tutorial erfahren Sie, wie Sie den Fehler „SSH-Berechtigung verweigert“ beheben und die Verbindung zu Ihrem SSH-Server wiederherstellen.
Voraussetzungen
- SSH-Client auf dem lokalen Rechner und SSH-Server auf dem Remote-System
- Ein Benutzerkonto für den Zugriff auf den Remote-Server (für passwortbasierte Anmeldung)
- Ein Benutzerkonto mit sudo oder root Privilegien
Was verursacht die Verweigerung der SSH-Berechtigung (publickey,gssapi-keyex,gssapi-with-mic)?
Der Fehler „SSH-Berechtigung verweigert“ wird angezeigt, wenn versucht wird, eine SSH-Verbindung zu einem Server herzustellen:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
Nach der Permission denied-Anweisung enthält die Klammer die versuchten Authentifizierungsmethoden, die beim Verbindungsaufbau fehlgeschlagen sind. Der Fehler deutet darauf hin, dass der öffentliche Schlüssel das Problem ist, was irreführend ist.
Ein Grund für den Fehler kann sshd_config
sein , die Datei, die die SSH-Serverkonfiguration enthält. Die andere Möglichkeit ist, dass die authorized_keys
Datei hat unzureichende Berechtigungen. Diese Datei enthält die Liste der öffentlichen Schlüssel für die Clients, die per SSH auf den Server zugreifen dürfen. Folglich führt die Unfähigkeit des Systems, aus der Datei zu lesen, zum Fehler Berechtigung verweigert.
So beheben Sie SSH-Zugriff verweigert
Beide Lösungen enthalten Schritte, die Sie serverseitig ausführen müssen. Öffnen Sie zunächst das Terminal auf Ihrem Server und fahren Sie mit einer der folgenden Lösungen fort.
Lösung 1:Kennwortauthentifizierung aktivieren
Wenn Sie ein Kennwort für den Zugriff auf den SSH-Server verwenden möchten, besteht eine Lösung zur Behebung des Fehlers „Berechtigung verweigert“ darin, die Kennwortanmeldung in sshd_config
zu aktivieren Datei.
Öffnen Sie dazu die Datei in einem Texteditor. Dieses Beispiel verwendet den Nano-Editor:
sudo nano /etc/ssh/sshd_config
Suchen Sie in der Datei PasswordAuthentication
Zeile und vergewissern Sie sich, dass sie mit yes
endet .
Suchen Sie die ChallengeResponseAuthentication
Option und deaktivieren Sie sie, indem Sie no
hinzufügen .
Wenn Zeilen auskommentiert sind, entfernen Sie das Rautezeichen #
auskommentieren.
Speichern Sie die Datei und beenden Sie sie.
Starten Sie den SSH-Dienst neu, indem Sie den folgenden Befehl eingeben:
sudo systemctl restart sshd
Lösung 2:Dateisystemberechtigungen ändern
Die Verwendung der passwortbasierten Anmeldung als SSH-Authentifizierungsmethode wird aus Sicherheitsgründen nicht empfohlen. Daher ist die folgende Lösung möglicherweise vorzuziehen, da sie die Authentifizierungsmethode mit öffentlichem Schlüssel behebt.
Öffnen Sie zuerst die sshd_config
Datei mit einem Texteditor:
sudo nano /etc/ssh/sshd_config
Stellen Sie in der Datei sicher, dass die folgenden Optionen wie folgt festgelegt sind:
PermitRootLogin no
PubkeyAuthentication yes
Kommentieren Sie die GSSAPI-bezogenen Optionen aus, indem Sie das Hash-Zeichen am Anfang der Zeile hinzufügen:
#GSSAPIAuthentication yes
#GSSAPICleanupCredentials no
Stellen Sie außerdem sicher, dass UsePAM
Zeile ist auf yes
gesetzt :
UsePAM yes
Speichern Sie die Datei und starten Sie den sshd-Dienst neu:
systemctl restart sshd
Navigieren Sie nun zu Ihrem Home-Ordner und überprüfen Sie die Berechtigungen:
ls -ld
Wenn Ihre Besitzerberechtigungen nicht auf Lesen, Schreiben und Ausführen (drwx------
), verwenden Sie den chmod-Befehl, um sie zu ändern:
chmod 0700 /home/[your-username]
Gehen Sie nun zur .ssh
Ordner und überprüfen Sie die Berechtigungen erneut:
ls -ld
Dieses Verzeichnis sollte auch Lese-, Schreib- und Ausführungsberechtigungen für den Dateieigentümer haben. Um sie zu erzwingen, verwenden Sie chmod
nochmal:
chmod 0700 /home/your_home/.ssh
Die .ssh
Ordner enthält die authorized_keys
Datei. Überprüfen Sie seine Berechtigungen mit:
ls -ld authorized_keys
Der Dateieigentümer sollte Lese- und Schreibrechte haben. Um sie einzustellen, verwenden Sie:
chmod 0600 /home/[username]/.ssh/authorized_keys
Versuchen Sie nun erneut, sich mit dem Schlüsselpaar anzumelden. Die folgende Ausgabe zeigt einen erfolgreichen Anmeldeversuch.