Website-Suche

So beheben Sie den Fehler SSH Permission Denied (Public Key)


SSH, ein Akronym für Secure Shell, ist ein Remoteprotokoll, das häufig verwendet wird, um Remoteverbindungen zu Servern, Netzwerkgeräten und anderen Remotehosts herzustellen, auf denen der Dienst ausgeführt wird. Es verwendet ein öffentliches/privates Schlüsselpaar, um den Datenverkehr zwischen dem Benutzer und dem Remote-Host zu verschlüsseln.

Beim Herstellen einer Verbindung kann der Fehler "ssh permission denied public key" auftreten. In diesem Leitfaden versuchen wir, die Ursache dieses Fehlers zu verstehen und wie man ihn beheben kann.

Ursache des Fehlers "SSH-Berechtigung verweigert (öffentlicher Schlüssel)"

Die Ursache für diesen Fehler ist meist eine Fehlkonfiguration in der Datei /etc/ssh/sshd_config, der Standard-SSH-Konfigurationsdatei.

Ein weiterer Schuldiger sind unzureichende Berechtigungen für die authorized_keys Datei auf dem Remote-System. Die Datei enthält die öffentlichen Schlüssel von Client-Systemen, die SSH mit dem Server verbinden dürfen.

Lassen Sie uns ohne viel Aufhebens mögliche Lösungen zur Behebung dieses Fehlers überprüfen.

Aktivieren der Kennwortauthentifizierung

Wie bereits erwähnt, ist einer der Gründe, die auf diesen Fehler zurückgeführt werden, eine Fehlkonfiguration der Datei /etc/ssh/sshd_config. Eine der falschen Einstellungen ist die Deaktivierung der Passwortauthentifizierungsfunktion. Dies kann passieren, wenn jemand nur die SSH-Schlüssel-basierte Authentifizierung verwendet und der private Schlüssel aus irgendeinem Grund nicht vorhanden ist.

Um diesen Fehler zu beheben, bearbeiten Sie die SSH-Standardkonfigurationsdatei.

$ sudo vim /etc/ssh/sshd_config

Suchen Sie das PasswordAuthentication-Attribut, und legen Sie es auf yes fest, wie unten gezeigt.

Speichern Sie die Änderungen und beenden Sie die Konfigurationsdatei. Starten Sie dann den SSH-Dienst neu, damit die Änderungen wirksam werden.

$ sudo systemctl restart sshd

Sie sollten jetzt in der Lage sein, eine nahtlose Verbindung mit dem Remote-Host herzustellen.

Überprüfen Sie die SSH-Authorized_keys Berechtigung

Manchmal kommt der Fehler von falschen Berechtigungen und Besitzverhältnissen der Datei ~/.ssh/authorized_keys auf dem Remote-System.

Die Datei ~/.ssh/authorized_keys befindet sich auf dem Remote-Server. Er enthält den öffentlichen SSH-Schlüssel des Clientsystems, das sich mit der SSH-Schlüsselauthentifizierung verbindet. Denken Sie daran, dass der private Schlüssel auf dem Clientsystem verbleiben und niemals freigegeben werden sollte.

Die authorized_keys Datei sollte sich im Besitz des Benutzers auf dem Remote-System befinden. Darüber hinaus sollte der Benutzer über Lese- und Schreibberechtigungen verfügen.

Wenn dies nicht der Fall ist, legen Sie die Berechtigungen für die Datei wie gezeigt fest.

$ sudo chmod 600 ~/.ssh/authorized_keys
ls -l .ssh/authorized_keys

Stellen Sie auf dem Clientsystem sicher, dass öffentliche und private Schlüssel über die richtigen Berechtigungen verfügen.

  • Der private Schlüssel sollte nur über Lese- und Schreibberechtigungen für den Dateibesitzer verfügen.
  • Der öffentliche Schlüssel sollte über Lese- und Schreibberechtigungen für den Dateibesitzer sowie über Leseberechtigungen für die Gruppe und andere globale Benutzer verfügen.

Ist dies nicht der Fall, konfigurieren Sie die Berechtigungen wie folgt im Oktalformat.

$ sudo chmod 600 ~/.ssh/id_rsa
sudo chmod 644 ~/.ssh/id_rsa.pub

Dies sind die beiden wichtigsten Methoden, mit denen Sie den Fehler "ssh permission denied public key" beheben können. Haben wir noch etwas ausgelassen? Lassen Sie es uns in den Kommentaren wissen.

Verwandte Artikel: