Der Raspberry Pi 5 ist ein Game Changer – schneller, leistungsfähiger und vielseitiger als seine Vorgänger. Doch die Freude über das neue Powerhouse wird schnell getrübt, wenn der SSH-Zugriff plötzlich scheitert und Sie mit der frustrierenden Meldung „Permission Denied (public key)” konfrontiert werden. Keine Sorge, Sie sind nicht allein! Dieses Problem gehört zu den häufigsten Stolpersteinen beim Remote-Zugriff. In diesem umfassenden Guide zeigen wir Ihnen Schritt für Schritt, wie Sie dieses hartnäckige Problem lösen und den Zugriff auf Ihren Raspberry Pi 5 garantiert wiederherstellen.
Wir tauchen tief in die Materie ein, beleuchten die Ursachen und präsentieren bewährte Lösungen, damit Ihr Pi wieder reibungslos erreichbar ist. Bereiten Sie sich darauf vor, zum SSH-Meister zu werden!
Warum SSH auf dem Raspberry Pi 5 unverzichtbar ist
Bevor wir uns den Problemen widmen, lassen Sie uns kurz rekapitulieren, warum SSH (Secure Shell) für Ihren Raspberry Pi so unglaublich wichtig ist:
- Headless-Betrieb: Der Pi 5 benötigt keinen Monitor, keine Tastatur und keine Maus mehr, sobald SSH eingerichtet ist. Sie steuern ihn bequem von jedem anderen Computer im Netzwerk aus.
- Remote-Verwaltung: Egal, ob Sie ein kleines Heimserverprojekt, ein Smart-Home-System oder einen Roboter betreiben – SSH ermöglicht die einfache Verwaltung und Wartung aus der Ferne.
- Sicherheit: SSH verschlüsselt die gesamte Kommunikation zwischen Ihrem lokalen Rechner und dem Pi. Das schützt Ihre Daten und Anmeldeinformationen vor neugierigen Blicken im Netzwerk.
- Produktivität: Befehle ausführen, Dateien übertragen, Software installieren – all das geht effizienter über SSH als mit einer direkten GUI-Verbindung.
Kurz gesagt: SSH ist das Tor zu einem produktiven und sicheren Umgang mit Ihrem Raspberry Pi 5.
„Permission Denied (public key)” – Die Wurzel des Problems verstehen
Die Fehlermeldung „Permission Denied (public key)” deutet darauf hin, dass der SSH-Server auf Ihrem Raspberry Pi Ihre Identität nicht anhand des bereitgestellten öffentlichen Schlüssels überprüfen konnte. Der SSH-Authentifizierungsprozess mit Schlüsselpaaren (privater und öffentlicher Schlüssel) ist eine sicherere Alternative zur Passwortauthentifizierung. Hier sind die häufigsten Ursachen, warum dieser Prozess fehlschlägt:
- Falsche Dateiberechtigungen (Permissions): Dies ist mit Abstand die häufigste Ursache. Sowohl die Dateien auf Ihrem lokalen Rechner (privater Schlüssel) als auch die auf dem Raspberry Pi (öffentlicher Schlüssel in
authorized_keys
und das.ssh
-Verzeichnis) müssen sehr spezifische Berechtigungen haben. - Falscher Dateibesitzer (Ownership): Auf dem Raspberry Pi muss das
.ssh
-Verzeichnis und die Dateiauthorized_keys
dem Benutzer gehören, als der Sie sich anmelden möchten (z.B.pi
). - Öffentlicher Schlüssel fehlt oder ist falsch: Ihr öffentlicher Schlüssel ist entweder nicht in der Datei
~/.ssh/authorized_keys
auf dem Pi vorhanden, falsch formatiert oder es wird der falsche Schlüssel verwendet. - Privater Schlüssel nicht hinzugefügt/aktiv: Ihr lokaler SSH-Client muss wissen, welchen privaten Schlüssel er verwenden soll. Manchmal muss dieser explizit einem SSH-Agenten hinzugefügt werden.
sshd_config
-Fehler: Die Konfigurationsdatei des SSH-Servers (/etc/ssh/sshd_config
) auf dem Pi kann Einstellungen enthalten, die die Public-Key-Authentifizierung verhindern oder einschränken.- Falscher Benutzername/Hostname: Sie versuchen, sich mit einem falschen Benutzernamen oder einer falschen IP-Adresse/Hostname anzumelden.
- Firewall-Probleme: Eine Firewall auf dem Pi oder Ihrem lokalen Rechner könnte die Verbindung blockieren, obwohl dies seltener bei der spezifischen Fehlermeldung „Permission Denied” der Fall ist (eher bei „Connection Refused”).
Vorbereitung ist alles: Bevor Sie mit der Fehlersuche beginnen
Um die Fehlersuche zu erleichtern, stellen Sie sicher, dass folgende Punkte erfüllt sind:
- Physischer Zugang zum Raspberry Pi 5: Wenn die Public-Key-Authentifizierung nicht funktioniert, benötigen Sie möglicherweise einen Monitor, eine Tastatur und eine Maus, um sich direkt am Pi anzumelden und Konfigurationsänderungen vorzunehmen. Alternativ können Sie versuchen, sich via Passwort anzumelden, falls dies noch aktiviert ist (was aus Sicherheitsgründen später deaktiviert werden sollte).
- Netzwerk-Konnektivität: Stellen Sie sicher, dass Ihr lokaler Rechner den Raspberry Pi im Netzwerk erreichen kann. Testen Sie dies mit einem einfachen Ping-Befehl:
ping
(z.B.ping 192.168.1.100
). - Standard-Zugangsdaten: Kennen Sie den Standard-Benutzernamen und das Passwort für Ihren Raspberry Pi (standardmäßig oft
pi
undraspberry
, wenn nicht geändert). - SSH-Server aktiviert: Vergewissern Sie sich, dass der SSH-Server auf Ihrem Pi überhaupt läuft.
Der garantierte Weg zur Lösung: Schritt für Schritt
Hier ist die ultimative Anleitung, um Ihren SSH-Zugriff mit Public Key wiederherzustellen. Folgen Sie den Schritten sorgfältig.
Phase 1: Überprüfung des SSH-Server-Status auf dem Raspberry Pi 5
Melden Sie sich direkt am Raspberry Pi an (Monitor/Tastatur oder falls noch möglich via Passwort):
- SSH-Dienst prüfen: Überprüfen Sie, ob der SSH-Dienst aktiv ist und läuft.
sudo systemctl status ssh
Sie sollten
Active: active (running)
sehen. Wenn nicht, fahren Sie mit den nächsten Schritten fort. - SSH-Dienst aktivieren und starten:
sudo systemctl enable ssh sudo systemctl start ssh
Überprüfen Sie den Status danach erneut. Stellen Sie sicher, dass keine Fehler gemeldet werden.
Phase 2: Client-seitige Schlüsselverwaltung (Ihr lokaler Rechner)
Diese Schritte führen Sie auf Ihrem lokalen Rechner aus (dem, von dem aus Sie sich verbinden möchten).
- SSH-Schlüsselpaar generieren (falls noch nicht geschehen):
Wenn Sie noch keine SSH-Schlüssel haben, erstellen Sie ein neues Paar. Wählen Sie eine sichere Passphrase!
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_pi5
Wir verwenden hier
id_rsa_pi5
, um Namenskollisionen zu vermeiden, falls Sie bereits andere Schlüssel haben. Ihr privater Schlüssel ist~/.ssh/id_rsa_pi5
und Ihr öffentlicher Schlüssel~/.ssh/id_rsa_pi5.pub
. - Korrekte Client-seitige Dateiberechtigungen:
Der private Schlüssel muss streng geschützt sein. Nur Sie dürfen ihn lesen.
chmod 600 ~/.ssh/id_rsa_pi5
Der öffentliche Schlüssel kann etwas offener sein, aber normalerweise sind die Standardberechtigungen
644
in Ordnung.chmod 644 ~/.ssh/id_rsa_pi5.pub
- Schlüssel zum SSH-Agenten hinzufügen (optional, aber empfohlen):
Der SSH-Agent speichert Ihre entschlüsselten privaten Schlüssel im Speicher, sodass Sie die Passphrase nicht bei jeder Verbindung eingeben müssen.
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa_pi5
Sie werden nach Ihrer Passphrase gefragt.
- SSH-Konfigurationsdatei für den Raspberry Pi (
~/.ssh/config
):Es ist eine bewährte Methode, eine Konfigurationsdatei zu verwenden, um Verbindungen einfacher zu machen und den richtigen Schlüssel zu verwenden.
nano ~/.ssh/config
Fügen Sie die folgenden Zeilen hinzu (ersetzen Sie
pi5
durch einen Alias Ihrer Wahl,
durch die IP Ihres Pi und
z.B.pi
):Host pi5 HostName
User IdentityFile ~/.ssh/id_rsa_pi5 Port 22 # Standard-SSH-Port Speichern Sie die Datei (Strg+O, Enter, Strg+X bei Nano). Nun können Sie sich später einfach mit
ssh pi5
verbinden.
Phase 3: Server-seitige Schlüssel- und Verzeichnisberechtigungen (Raspberry Pi 5)
Diese Schritte sind entscheidend und werden direkt auf dem Raspberry Pi 5 ausgeführt, entweder über eine direkte Anmeldung (Monitor/Tastatur) oder über eine bestehende Passwort-SSH-Verbindung (falls diese noch funktioniert).
.ssh
-Verzeichnis erstellen und Berechtigungen setzen:Das
.ssh
-Verzeichnis muss im Home-Verzeichnis des Benutzers liegen, als der Sie sich anmelden möchten (z.B./home/pi/.ssh/
). Die Berechtigungen müssen auf700
gesetzt werden, d.h., nur der Besitzer hat Vollzugriff.mkdir -p ~/.ssh chmod 700 ~/.ssh
authorized_keys
-Datei erstellen/prüfen und Berechtigungen setzen:Die Datei
authorized_keys
enthält die öffentlichen Schlüssel, die zum Zugriff auf diesen Benutzer berechtigt sind. Sie muss auf600
gesetzt werden (nur der Besitzer darf lesen und schreiben).touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
- Dateibesitzer (Ownership) überprüfen und anpassen:
Das
.ssh
-Verzeichnis und dieauthorized_keys
-Datei müssen dem Benutzer gehören, als der Sie sich anmelden wollen (z.B.pi
).sudo chown -R
: ~/.ssh Ersetzen Sie
durch den tatsächlichen Benutzernamen (z.B.pi
). - Ihren öffentlichen Schlüssel zur
authorized_keys
-Datei hinzufügen:Dies ist der wichtigste Schritt. Es gibt mehrere Wege:
- Die einfache Methode (empfohlen, falls Passwort-SSH noch geht):
Von Ihrem lokalen Rechner aus:
ssh-copy-id -i ~/.ssh/id_rsa_pi5.pub
@ Sie werden nach dem Passwort des Benutzers auf dem Pi gefragt.
ssh-copy-id
kümmert sich um alle Berechtigungen und das Hinzufügen des Schlüssels. - Manuelles Kopieren (wenn kein Passwort-SSH mehr geht, aber physischer Zugriff besteht):
Kopieren Sie den Inhalt Ihres öffentlichen Schlüssels (
~/.ssh/id_rsa_pi5.pub
von Ihrem lokalen Rechner) auf eine temporäre Weise auf den Pi (z.B. per USB-Stick, E-Mail oder über einen Texteditor).Dann auf dem Raspberry Pi die Datei
~/.ssh/authorized_keys
öffnen:nano ~/.ssh/authorized_keys
Fügen Sie den vollständigen Inhalt Ihres öffentlichen Schlüssels (eine lange Zeile beginnend mit
ssh-rsa AAAA...
oderssh-ed25519 AAAA...
) am Ende der Datei ein. Jedes Schlüsselpaar muss in einer eigenen Zeile stehen. Speichern und schließen Sie die Datei.
- Die einfache Methode (empfohlen, falls Passwort-SSH noch geht):
Phase 4: SSH-Server-Konfiguration (sshd_config
) auf dem Raspberry Pi 5
Überprüfen Sie die Konfiguration des SSH-Servers auf dem Raspberry Pi 5. Melden Sie sich direkt am Pi an.
- Konfigurationsdatei bearbeiten:
sudo nano /etc/ssh/sshd_config
- Wichtige Einstellungen überprüfen/anpassen:
Stellen Sie sicher, dass folgende Zeilen vorhanden und korrekt konfiguriert sind. Entfernen Sie das
#
am Anfang der Zeile, falls es auskommentiert ist:PubkeyAuthentication yes
(Muss unbedingt aufyes
stehen)AuthorizedKeysFile .ssh/authorized_keys
(Dies ist der Standardpfad; passen Sie ihn nur an, wenn Sie einen anderen Pfad verwenden)PasswordAuthentication no
(Optional: Sobald der Schlüsselzugriff funktioniert, sollten Sie dies aufno
setzen, um die Sicherheit zu erhöhen. Tun Sie dies erst, wenn Sie sich erfolgreich mit dem Schlüssel anmelden können!)PermitRootLogin no
(Stellen Sie sicher, dass dies aufno
steht. Direktes Root-Login ist eine Sicherheitslücke.)AllowUsers
(Optional: Fügen Sie diese Zeile hinzu und ersetzen Sie
durch den Benutzernamen, der SSH-Zugriff haben soll, z.B.pi
. Dies schränkt den Zugriff auf bestimmte Benutzer ein und erhöht die Sicherheit.)
- SSH-Dienst neu starten:
Nach jeder Änderung an der
sshd_config
müssen Sie den SSH-Dienst neu starten, damit die Änderungen wirksam werden.sudo systemctl restart ssh
Phase 5: Testen und erweiterte Fehlersuche
Versuchen Sie nun, sich von Ihrem lokalen Rechner aus zu verbinden:
ssh pi5
(Wenn Sie die ~/.ssh/config
eingerichtet haben) oder:
ssh -i ~/.ssh/id_rsa_pi5 @
Wenn es immer noch nicht klappt, verwenden Sie den detaillierten (verbose) Modus, um mehr Informationen zu erhalten:
ssh -vvv pi5
(oder entsprechend mit IP-Adresse und Benutzername). Die Ausgabe im Terminal wird sehr umfangreich sein. Achten Sie auf Zeilen wie Authentications that can continue: publickey,password
oder spezifische Fehler nach Offering public key
.
Zusätzliche Prüfpunkte auf dem Raspberry Pi 5:
- Protokolldateien prüfen:
Schauen Sie in die SSH-Protokolle auf dem Pi, um zu sehen, was auf Server-Seite passiert. Suchen Sie nach Fehlern oder Warnungen.
sudo journalctl -u ssh.service sudo tail -f /var/log/auth.log
- Firewall (UFW):
Wenn Sie eine Firewall wie UFW (Uncomplicated Firewall) auf Ihrem Pi aktiviert haben, stellen Sie sicher, dass SSH-Verbindungen erlaubt sind.
sudo ufw status sudo ufw allow ssh
Wenn Sie den SSH-Port geändert haben, müssen Sie diesen Port explizit freigeben (z.B.
sudo ufw allow 2222/tcp
). - SELinux/AppArmor:
Weniger üblich bei Raspberry Pi OS, aber wenn Sie ein anderes System verwenden, könnten Sicherheitsmodule wie SELinux oder AppArmor den SSH-Zugriff blockieren. Dies ist ein komplexeres Thema, das aber die Berechtigungen von SSH-Dateien überschreiben kann.
Best Practices für sicheren SSH-Zugriff
Sobald Ihr Public-Key-Zugriff funktioniert, sollten Sie folgende Sicherheitspraktiken implementieren:
- Passwort-Authentifizierung deaktivieren: Wenn Ihr Schlüsselpaar funktioniert, bearbeiten Sie
/etc/ssh/sshd_config
und setzen SiePasswordAuthentication no
. Starten Sie SSH neu. - Passphrase für Schlüssel verwenden: Eine Passphrase schützt Ihren privaten Schlüssel, selbst wenn dieser kompromittiert wird.
- SSH-Port ändern: Ändern Sie den Standard-SSH-Port 22 auf einen ungenutzten Port über 1024 (z.B. 2222) in
/etc/ssh/sshd_config
. - Fail2Ban installieren: Fail2Ban überwacht die Protokolldateien und blockiert IP-Adressen, die wiederholt versuchen, sich erfolglos anzumelden.
- System regelmäßig aktualisieren: Halten Sie Ihr Raspberry Pi OS immer auf dem neuesten Stand mit
sudo apt update && sudo apt upgrade
.
Fazit: Der Zugriff ist garantiert!
Die Fehlermeldung „Permission Denied (public key)” auf Ihrem Raspberry Pi 5 kann frustrierend sein, ist aber fast immer auf falsche Berechtigungen, fehlende oder falsch platzierte Schlüssel oder eine fehlerhafte SSH-Server-Konfiguration zurückzuführen. Mit dieser umfassenden Anleitung haben Sie alle Werkzeuge an der Hand, um die Ursache zu identifizieren und das Problem ein für alle Mal zu beheben.
Indem Sie die Schritte zur Überprüfung der Client- und Server-seitigen Schlüssel, Verzeichnisberechtigungen und der sshd_config
sorgfältig durchgehen, werden Sie den Zugriff auf Ihren Raspberry Pi 5 garantiert wiederherstellen können. Genießen Sie die volle Leistungsfähigkeit Ihres neuen Pi 5 mit sicherem und zuverlässigem Remote-Zugriff!