So beheben Sie den Fehler „Berechtigung verweigert“ (Publickey)
Veröffentlicht: 2024-01-10- Warum es wichtig ist
- Grundlagen sicherer Computerverbindungen
- Schlüssel zum Schloss: Öffentliche Schlüssel
- Warum tritt dieser Fehler auf?
- Wie man es repariert
- Zusätzliche Tipps, wenn es immer noch nicht funktioniert
- Damit es reibungslos läuft
- FAQs
- Andere Ressourcen
- Zusammenfassung
Sind Sie bei der Verwendung Ihres Computers schon einmal auf die Meldung „Fehler: Berechtigung verweigert (Publickey)“ gestoßen? Dies ist ein häufiger Fehler, der normalerweise bei SSH-Verbindungen auftritt, bei denen Computer sicher miteinander kommunizieren.
Stellen Sie sich das so vor, als würden Sie versuchen, einen Schlüssel zu verwenden, der nicht in das Schloss passt. Wenn Sie diesen Fehler sehen, bedeutet das, dass Ihr Computer Probleme beim Herstellen einer sicheren Verbindung mit einem anderen Computer hat, weil etwas in den Sicherheitseinstellungen nicht übereinstimmt.
Warum es wichtig ist
Sichere Verbindungen, wie sie mit SSH hergestellt werden, sind wie ein privates Gespräch in einem lauten Raum. Sie möchten doch nicht, dass jeder mithört, vor allem nicht, wenn Sie Geheimnisse oder persönliche Informationen preisgeben, oder? Deshalb ist die Behebung dieses Fehlers so wichtig.
Dadurch bleiben die Gespräche auf Ihrem Computer privat und sicher und stellen sicher, dass vertrauliche Informationen wie Passwörter vertraulich bleiben.
Grundlagen sicherer Computerverbindungen
Lassen Sie uns genauer untersuchen, was SSH ist.
SSH steht für Secure Shell und ist eine besondere Möglichkeit für Computer, auf supersichere Weise über das Internet miteinander zu kommunizieren. Stellen Sie sich SSH wie einen speziellen, privaten Tunnel vor, der zwei Computer verbindet.
Nur diese beiden Computer können über diesen Tunnel Nachrichten aneinander senden und so ihre Konversation vor Abhörern schützen.
Schlüssel zum Schloss: Öffentliche Schlüssel
Um diesen Tunnel sicher zu machen, verwendet SSH eine sogenannte „Public-Key-Authentifizierung“. Es ist, als hätte man ein spezielles Passwort, aber in Form eines Schlüssels. Ihr Computer verfügt über einen eindeutigen Schlüssel (sogenannter öffentlicher Schlüssel), den er mit dem anderen Computer teilt.
Betrachten Sie es wie einen geheimen Händedruck. Wenn der Handshake nicht übereinstimmt, wird die Verbindung nicht hergestellt, und dann wird die Meldung „Fehler: Berechtigung verweigert (Publickey)“ angezeigt.
Warum tritt dieser Fehler auf?
Warum wird dieser Fehler angezeigt? Es gibt ein paar häufige Gründe:
- Schlüsselprobleme: Manchmal tritt der Fehler auf, weil bei der Einrichtung Ihres Sonderschlüssels etwas nicht stimmt. Möglicherweise stimmt der Schlüssel auf Ihrem Computer nicht mit dem Schlüssel auf dem Computer überein, mit dem Sie kommunizieren möchten. Es ist, als würde man versuchen, einen quadratischen Pflock in ein rundes Loch zu stecken – es funktioniert einfach nicht.
- Falsche Einstellungen: In anderen Fällen sind die Einstellungen oder Berechtigungen auf Ihrem Computer möglicherweise falsch eingerichtet. Dies kann dazu führen, dass Ihr Computer den Schlüssel nicht ordnungsgemäß verwendet, z. B. wenn Sie den richtigen Schlüssel haben, ihn aber nicht im Schloss drehen können.
Wie man es repariert
Nachdem Sie nun ein wenig verstanden haben, warum dieser Fehler auftritt, sprechen wir darüber, wie Sie ihn beheben können. Hier sind einige Schritte, die Sie befolgen können:
Überprüfen Sie die SSH-Schlüsselberechtigungen:
Legen Sie die richtigen Berechtigungen für Ihren privaten Schlüssel fest.
chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/autorized_keys
Stellen Sie sicher, dass sich Ihr öffentlicher Schlüssel in ~/.ssh/authorized_keys
auf dem Server befindet. Wenn nicht, fügen Sie es hinzu mit:
cat ~/.ssh/id_rsa.pub | ssh user@hostname 'cat >> ~/.ssh/authorized_keys'.
Debuggen der SSH-Verbindung
Führen Sie ssh -vvv user@hostname aus, um den ausführlichen Modus zu aktivieren und eine detaillierte Verbindungsdiagnose bereitzustellen.
Überprüfen Sie auf dem Server die korrekten Konfigurationen, insbesondere für PasswordAuthentication
und PubkeyAuthentication
.
cat etc/ssh/sshd_config
Zusätzliche Lösungen:
Überprüfen Sie noch einmal, ob Sie den richtigen Benutzernamen für die SSH-Verbindung verwenden.
Starten Sie den SSH-Dienst neu, um die Verbindungen zu aktualisieren.
sudo systemctl restart sshd
Überprüfen Sie den SSH-Verbindungsport in der SSH-Konfigurationsdatei. Der Standardwert ist normalerweise 22, wurde jedoch möglicherweise geändert.
Überprüfen Sie Serverprotokolle wie /var/log/auth.log oder /var/log/secure auf Fehlerdetails.
Zusätzliche Tipps, wenn es immer noch nicht funktioniert
Wenn Sie diese Schritte ausprobiert haben und der Fehler immer noch angezeigt wird, können Sie Folgendes noch ausprobieren:
- Gesprächsmodus: Aktivieren Sie den ausführlichen Modus in SSH. Das ist, als ob Sie Ihren Computer bitten würden, Ihnen weitere Hinweise darauf zu geben, was falsch läuft. Sie tun dies, indem Sie
-vvv
zu Ihrem SSH-Befehl hinzufügen, z. B.ssh -vvv [email protected]
. Dadurch erhalten Sie viel mehr Details darüber, was passiert, wenn Sie versuchen, eine Verbindung herzustellen. - Agentenprobleme: Manchmal liegt das Problem möglicherweise beim SSH-Agenten, einem Tool, das Ihre Schlüssel speichert. Wenn der Agent nicht ordnungsgemäß funktioniert, werden Ihre Schlüssel nicht korrekt angezeigt. Manchmal kann ein Neustart des SSH-Agenten hilfreich sein.
Damit es reibungslos läuft
Damit dieser Fehler in Zukunft nicht mehr auftritt, finden Sie hier einige Tipps, damit alles reibungslos funktioniert:
- Schlüsselpflege: Behandeln Sie Ihre SSH-Schlüssel wie einen Hausschlüssel. Bewahren Sie sie sicher auf und geben Sie sie nicht an andere weiter. Überprüfen Sie regelmäßig, ob sie noch ordnungsgemäß funktionieren.
- Regelmäßige Kontrollen: So wie Sie Ihr Auto oder Haus regelmäßig auf Probleme überprüfen würden, machen Sie dasselbe mit Ihren SSH-Einstellungen. Stellen Sie sicher, dass sich die Einstellungen nicht unerwartet geändert haben und dass Ihre Schlüssel auf dem neuesten Stand sind.
FAQs
Wie richte ich die Authentifizierung mit öffentlichem Schlüssel in SSH ein?
Um die Authentifizierung mit öffentlichen Schlüsseln in SSH einzurichten, generieren Sie zunächst ein SSH-Schlüsselpaar auf Ihrem lokalen Computer mit einem Befehl wie ssh-keygen
. Dadurch werden ein privater Schlüssel ( id_rsa
) und ein öffentlicher Schlüssel ( id_rsa.pub
) erstellt. Kopieren Sie als Nächstes den öffentlichen Schlüssel mit ssh-copy-id user@server_ip
in die Datei ~/.ssh/authorized_keys
des Servers. Stellen Sie aus Sicherheitsgründen sicher, dass die Datei authorized_keys
über die richtigen Berechtigungen (normalerweise 600) verfügt. Dieses Setup ermöglicht es SSH, eine schlüsselbasierte Authentifizierung anstelle von Passwörtern zu verwenden.
Was sind häufige Ursachen für den Fehler „SSH-Berechtigung verweigert (Publickey)“?
- Zu den häufigsten Ursachen für diesen Fehler gehören:
- Falsche Berechtigungen für die SSH-Schlüsseldateien. Der private Schlüssel sollte nur für den Benutzer lesbar sein (600).
- Fehlkonfiguration in den SSH-Konfigurationsdateien (
sshd_config
oderssh_config
). - Veraltete SSH-Client- oder Serversoftware, die aktuelle Authentifizierungsprotokolle möglicherweise nicht unterstützt.
- Firewall oder Sicherheitssoftware blockiert SSH-Ports oder -Verbindungen.
- Der öffentliche Schlüssel ist in der Datei
authorized_keys
falsch eingerichtet oder es wurde ein falscher Benutzername für die SSH-Verbindung verwendet.
Wie kann ich überprüfen, ob mein SSH-Schlüssel korrekt zum Server hinzugefügt wurde?
Melden Sie sich zur Überprüfung am Server an und überprüfen Sie die Datei ~/.ssh/authorized_keys
. Dort sollte Ihr öffentlicher Schlüssel aufgeführt sein. Sie können die Verbindung auch testen, indem Sie versuchen, eine SSH-Verbindung zum Server herzustellen. Wenn kein Passwort abgefragt wird, wurde der Schlüssel korrekt hinzugefügt.
Warum ist es wichtig, die Berechtigungen für die SSH-Schlüsseldateien einzuschränken?
Die Beschränkung der Berechtigungen für SSH-Schlüsseldateien ist aus Sicherheitsgründen von entscheidender Bedeutung. Wenn andere Ihren privaten Schlüssel lesen können, können sie möglicherweise auf Ihre Server zugreifen. Durch die sichere Aufbewahrung des privaten Schlüssels wird sichergestellt, dass nur Sie ihn zur Authentifizierung verwenden können.
Können Änderungen in der SSH-Konfiguration des Servers zu „Permission Denied“-Fehlern führen?
Ja, Änderungen in der SSH-Konfigurationsdatei des Servers ( etc/ssh/sshd_config
) können zu solchen Fehlern führen. Wenn PubkeyAuthentication
beispielsweise auf no
gesetzt ist, akzeptiert der Server die Authentifizierung mit öffentlichen Schlüsseln nicht, was zu einem Fehler „Berechtigung verweigert“ führt.
Was soll ich tun, wenn mein SSH-Client veraltet ist?
Wenn Ihr SSH-Client veraltet ist, unterstützt er möglicherweise keine neueren Authentifizierungsmethoden oder weist möglicherweise nicht behobene Sicherheitslücken auf. Es ist wichtig, dass Sie Ihren SSH-Client auf die neueste für Ihr Betriebssystem verfügbare Version aktualisieren.
Wie wirken sich Firewalls auf SSH-Verbindungen aus?
Firewalls können SSH-Verbindungen blockieren, wenn sie so konfiguriert sind, dass sie den Zugriff auf den SSH-Port beschränken (Standard ist 22). Stellen Sie sicher, dass Ihre Firewall Datenverkehr auf dem für SSH verwendeten Port zulässt, um Verbindungsprobleme zu vermeiden.
Andere Ressourcen
So installieren Sie Sendmail unter Linux 2024 (Schritt für Schritt)
Grundlegende Linux-Befehle für DevOps (Handbuch)
Zusammenfassung
In diesem Artikel haben wir untersucht, was den „Fehler: Berechtigung verweigert (Publickey)“ verursacht und wie man ihn beheben kann. Denken Sie daran, dieser Fehler ist wie ein Schlüssel, der nicht in ein Schloss passt – er bedeutet normalerweise, dass etwas mit der Art und Weise, wie Ihre SSH-Schlüssel eingerichtet oder verwendet werden, nicht stimmt. Wenn Sie die von uns beschriebenen Schritte befolgen, sollten Sie das Problem lösen und wieder sichere Gespräche mit anderen Computern führen können.
Ludjon, Mitbegründer von Codeless, besitzt eine tiefe Leidenschaft für Technologie und das Web. Mit über einem Jahrzehnt Erfahrung in der Erstellung von Websites und der Entwicklung weit verbreiteter WordPress-Themes hat sich Ludjon als versierter Experte auf diesem Gebiet etabliert.