OpenSSH Login mit Public Key schlägt fehl, mit Passwort funktioniert
Hallo zusammen,
ich hatte hier schon nach einer Anleitung für einen SFTP Server mit Linux gefragt, habe dort auch Antworten bekommen.
Ich habe jetzt nach folgender Anleitung mir mit OpenSSH unter Debian den SFTP Server installiert:
Debian SFTP-Server einrichten
Das ganze funktioniert mit Passwort einwandfrei. Anschließend habe ich mit Puttygen mir einen Public und Private Key erstellt.
Danach folgende Befehle über Putty auf dem Debian ausgeführt um das Login mittels Public Key zu ermöglichen:
Anschließend habe ich den Inhalt aus dem Puttygen Fenster (für OpenSSH, steht extra dabei) mittels nano in die Datei authorized_keys geschrieben:
Anschließend habe ich den SSH Dienst neugestartet mit
Der Login mit meinem Private Key vom Client aus funktioniert allerdings leider trotzdem noch nicht. Ich habe auch versucht den Inhalt der authorized_keys Datei zu löschen und mit folgendem Befehl aus der Datei zu importieren:
Dort hat er dann aber natürlich die SSH2 Version eingetragen, die durch Putty als Datei erstellt wurde. Auch das hat nicht funktioniert.
Ich habe mir nun mal das Log angeguckt und dort steht nur folgendes:
Hat jemand eine Idee, woran es noch liegen könnte?
Danke im Voraus!
ich hatte hier schon nach einer Anleitung für einen SFTP Server mit Linux gefragt, habe dort auch Antworten bekommen.
Ich habe jetzt nach folgender Anleitung mir mit OpenSSH unter Debian den SFTP Server installiert:
Debian SFTP-Server einrichten
Das ganze funktioniert mit Passwort einwandfrei. Anschließend habe ich mit Puttygen mir einen Public und Private Key erstellt.
Danach folgende Befehle über Putty auf dem Debian ausgeführt um das Login mittels Public Key zu ermöglichen:
cd /home/username
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 700 .ssh/authorized_keys
Anschließend habe ich den Inhalt aus dem Puttygen Fenster (für OpenSSH, steht extra dabei) mittels nano in die Datei authorized_keys geschrieben:
nano .ssh/authorized_keys
Anschließend habe ich den SSH Dienst neugestartet mit
/etc/init.d/ssh restart
Der Login mit meinem Private Key vom Client aus funktioniert allerdings leider trotzdem noch nicht. Ich habe auch versucht den Inhalt der authorized_keys Datei zu löschen und mit folgendem Befehl aus der Datei zu importieren:
cat /home/username/upload/public.pub >> /home/username/.ssh/authorized_keys
Dort hat er dann aber natürlich die SSH2 Version eingetragen, die durch Putty als Datei erstellt wurde. Auch das hat nicht funktioniert.
Ich habe mir nun mal das Log angeguckt und dort steht nur folgendes:
Jan 17 14:46:44 SFTP-Server sshd[2468]: error: Received disconnect from 192.168.80.205 port 58941:13: Unable to authenticate [preauth]
Jan 17 14:46:44 SFTP-Server sshd[2468]: Disconnected from 192.168.80.205 port 58941 [preauth]
Hat jemand eine Idee, woran es noch liegen könnte?
Danke im Voraus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 398543
Url: https://administrator.de/forum/openssh-login-mit-public-key-schlaegt-fehl-mit-passwort-funktioniert-398543.html
Ausgedruckt am: 26.04.2025 um 00:04 Uhr
19 Kommentare
Neuester Kommentar
Mit "-vvv" meine ich: Du kannst den SSH-Client, zumindets unter Linux, mit "sehr verbosem logging" starten, so das er alle möglichen Details zum Verbindungsaufbau preis gibt. U.a. welcher key genutzt wird usw.
Nein ich meinte, wo der Key auf dem Windows-Rechner liegt. Putty muss den entsprechenden Key, den du in authorized_keys eingetragen hast, beim Verbinden vom Client an den Server mitgeben, sonst kann es nicht funktionieren. Sicher das hier die Pfade stimmen?
Nein ich meinte, wo der Key auf dem Windows-Rechner liegt. Putty muss den entsprechenden Key, den du in authorized_keys eingetragen hast, beim Verbinden vom Client an den Server mitgeben, sonst kann es nicht funktionieren. Sicher das hier die Pfade stimmen?
Question:
How does one enable Putty debug in Centrify Putty/stock Putty?
Answer:
A) If you are using Centrify Putty or Stock Putty
Configuring PuTTY Debug Logs:
From the PuTTY Configuration, in the left pane, click on "Logging" under "Session".
On the right, ensure "Log all session output" or "Log SSH packet data" is selected.
Note the path to the log file which needs to be sent along with sshd logs.

Moin,
das ist dann aber der private Key.
das geht nur mit dem OpenSSH-Client. Bei anderen SSH Clients musst du in den Einstellungen bzw. Dokumentation nachschauen, wo die das Log abspeichern.
Hier mal für WinSCP:
https://winscp.net/eng/docs/ui_pref_logging
Viele Grüße,
Exception
Nein ich meinte, wo der Key auf dem Windows-Rechner liegt.
das ist dann aber der private Key.
Wie genau mache ich das mit "-vvv"?
das geht nur mit dem OpenSSH-Client. Bei anderen SSH Clients musst du in den Einstellungen bzw. Dokumentation nachschauen, wo die das Log abspeichern.
Hier mal für WinSCP:
https://winscp.net/eng/docs/ui_pref_logging
Viele Grüße,
Exception

Zitat von @bloodstix:
Ist ja auch nur logisch. Der SSH-Server läuft ja nicht als der Benutzer, als der du dich anmelden willst.
Wenn du dann wie im Eingangspost geschrieben "0700" gemacht hast, darf der Server da in die authorized_keys
gar nicht reinschauen.
Blödsinn!Ist ja auch nur logisch. Der SSH-Server läuft ja nicht als der Benutzer, als der du dich anmelden willst.
Wenn du dann wie im Eingangspost geschrieben "0700" gemacht hast, darf der Server da in die authorized_keys
gar nicht reinschauen.
Lesen: https://man.openbsd.org/sshd
~/.ssh/
This directory is the default location for all user-specific configuration and authentication information. There is no general requirement to keep the entire contents of this directory secret, but the recommended permissions are read/write/execute for the user, and not accessible by others.
~/.ssh/authorized_keys
Lists the public keys (DSA, ECDSA, Ed25519, RSA) that can be used for logging in as this user. The format of this file is described above. The content of the file is not highly sensitive, but the recommended permissions are read/write for the user, and not accessible by others.
If this file, the ~/.ssh directory, or the user's home directory are writable by other users, then the file could be modified or replaced by unauthorized users. In this case, sshd will not allow it to be used unless the StrictModes option has been set to “no”.
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys

Zitat von @Dennis93:
Muss ich dann den Besitzer ändern auf den User "username"? Wie genau mache ich das?
Nur wenn du das .ssh Verzeichnis des Users auch mit Root angelegt hast, denn dann ist Root Besitzer von Ordner und file!Muss ich dann den Besitzer ändern auf den User "username"? Wie genau mache ich das?
Ändern von Besitzern des dirs und des files machst du so:
chown username:username /home/username/.ssh/
chown username:username /home/username/.ssh/authorized_keys
Ein ls -la oder ll zeigt dir die aktuellen Rechte und Besitzer.

Und wo du dabei bist, einfach mal hier die Grundlagen anlesen! Dann sind auch solche "Rateaktionen" überflüssig.
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Public_Key_Authentication
Nur Anleitungen folgen ist zwar schön und gut, bringt dich aber ehrlich gesagt auf der Wissenbasis zum Thema keinen Schritt weiter. Gewisse Unix-Grundlagen sind einfach unverzichtbar.
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Public_Key_Authentication
Nur Anleitungen folgen ist zwar schön und gut, bringt dich aber ehrlich gesagt auf der Wissenbasis zum Thema keinen Schritt weiter. Gewisse Unix-Grundlagen sind einfach unverzichtbar.

Noch als Hinweis wenn du mit chroot arbeitest, kann es je nach Pfad zur Situation kommen das der Pfad zur authorized_keys nicht mehr stimmt und du dann den Pfad in der sshd_config anpassen musst, weil dem User dann unter umständen der Zugriff auf die authorized_keys nicht mehr möglich ist wenn ein Pfad außerhalb des homes verpasst wird:
https://wiki.archlinux.org/index.php/SFTP_chroot
Dort den Hinweis unter Fixing path for authorized_keys lesen.
https://wiki.archlinux.org/index.php/SFTP_chroot
Dort den Hinweis unter Fixing path for authorized_keys lesen.
moinsen,
ich habe auch lange rumgeschraubt damit...geholfen haben mir folgende Tips (und ja, die verfluchten Rechte sind für nicht linuxer oft ein Stolperstein...hier ist ja eigentlich schon alles, was die Rechte angeht, beantwortet)...trotzdem hier meine link-tips:
https://www.synology-wiki.de/index.php/Ssh_mit_Zertifikaten_absichern
https://forum.synology.com/enu/viewtopic.php?t=126166
https://wiki.ubuntuusers.de/chmod/
Zugegeben: bei den ersten beiden handelt es sich um Synology NAS Empfehlungen, die aber AFAIK generell wissenswert sind, der dritte link ist eher Basic-knowledge, was chmod angeht...
grüßle
th30ther
ich habe auch lange rumgeschraubt damit...geholfen haben mir folgende Tips (und ja, die verfluchten Rechte sind für nicht linuxer oft ein Stolperstein...hier ist ja eigentlich schon alles, was die Rechte angeht, beantwortet)...trotzdem hier meine link-tips:
https://www.synology-wiki.de/index.php/Ssh_mit_Zertifikaten_absichern
https://forum.synology.com/enu/viewtopic.php?t=126166
https://wiki.ubuntuusers.de/chmod/
Zugegeben: bei den ersten beiden handelt es sich um Synology NAS Empfehlungen, die aber AFAIK generell wissenswert sind, der dritte link ist eher Basic-knowledge, was chmod angeht...
grüßle
th30ther
Um es nochmal zusammenzufassen:
Damit ein SSH-Key funktioniert müssen ALLE folgende Dinge erfüllt sein:
Wenn du den Benutzer "geröllheimer" angelegt hast und dich als dieser Benutzer mit Key anmelden willst, muss dein Screenshot also aussehen:
Für das Verzeichnis ".ssh":
Für die darin liegende authorized_keys:
Ist auch nur ein einziger der genannten Punkte nicht erfüllt, wird die authorized_keys aus Sicherheitsgründen ignoriert.
Denn wenn die Datei zum Beispiel aufgrund falscher Berechtigungen durch andere Benutzer des Systems verändert werden könnte, wäre das ein echtes Sicherheitsproblem (denn ein Nutzer könnte dadurch seinen Key hinterlegen und sich als der andere Nutzer anmelden) und das will man verhindern.
Damit ein SSH-Key funktioniert müssen ALLE folgende Dinge erfüllt sein:
- Der Key muss in ~/.ssh/authorized_keys des Benutzers hinterlegt sein
- Die Datei authorized_keys muss dem Benutzer gehören, der sich mit dem Key einloggen soll (chown benutzername)
- Die Datei authorized_keys darf nur vom Eigentümer verändert und gelesen werden (chmod 0600)
- Das Verzeichnis ".ssh", in dem sich diese Datei befindet, darf nur vom Eigentümer geschrieben werden (chmod 0700)
Wenn du den Benutzer "geröllheimer" angelegt hast und dich als dieser Benutzer mit Key anmelden willst, muss dein Screenshot also aussehen:
Für das Verzeichnis ".ssh":
drwx------ 2 geröllheimer users 4096 Jan 17 15:45 .ssh
Für die darin liegende authorized_keys:
-rw------- 2 geröllheimer users 3,6k Jan 17 15:45 authorized_keys
Ist auch nur ein einziger der genannten Punkte nicht erfüllt, wird die authorized_keys aus Sicherheitsgründen ignoriert.
Denn wenn die Datei zum Beispiel aufgrund falscher Berechtigungen durch andere Benutzer des Systems verändert werden könnte, wäre das ein echtes Sicherheitsproblem (denn ein Nutzer könnte dadurch seinen Key hinterlegen und sich als der andere Nutzer anmelden) und das will man verhindern.