Seltsames Problem mit der PPK-Schlüssel-Authentifizierung

BildungsRitter

Benutzer
Mitglied seit
28. Mai 2024
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Liebe Community,
ich habe ein merkwürdiges Problem. SSH war bei mir schon aktiviert (entweder durch meinen Vater oder von Haus aus). Ich komme also mit Putty drauf. Jetzt habe ich ein Schlüsselpaar erzeugt, das Verzeichnis .ssh in meinem home-Verzeichnis angelegt und dort drin die Datei "authorized_keys" mit dem öffentlichen RSA-Schlüssel. Den privaten Schlüssel habe ich in Putty reingeladen. Es sollte also alles funktionieren, aber wenn ich eine Verbindung herstelle und meinen Benutzernamen angegeben habe, kommt bei mir die Meldung "the server refused our key" oder so ähnlich. Es funktioniert also nicht, sodass ich mich nach wie vor mit meinem Passwort anmelden muss. Die Einstellungen in der Datei "sshd_config" sind aber mMn korrekt (also KeyAuthorization enabled, etc). Kann es sein, dass sich von meinem Benutzernamen mal das home-Verzeichnis geändert hat und deshalb der öffentliche Schlüssel vom System nicht gefunden wird? Wenn dem so wäre, wäre ich ziemlich ratlos, da nicht ich die DiskStation in Betrieb genommen hat, sondern mein Vater (und ich nicht weiß, was er gemacht hat). Da wäre es hilfreich, ein paar Inputs zu bekommen, wie ich an die Fehlersuche gehen könnte. Danke.
 

Hagen2000

Benutzer
Mitglied seit
25. Mai 2016
Beiträge
339
Punkte für Reaktionen
117
Punkte
43
Stehen die Rechte der Dateien richtig?
Bash:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Eigentümer sollte jeweils der entsprechende Benutzer sein.
 

BildungsRitter

Benutzer
Mitglied seit
28. Mai 2024
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
7 bedeutet read/write/execute
6 bedeutet read/write
0 bedeutet keine Rechte
... richtig?
Ich habe es nun überprüft, die Rechte sind korrekt gesetzt und als Besitzer von Datei und Ordner bin ich eingetragen. Trotzdem wird der Key "zurückgewiesen" (ich bin derjenige, der sich verbinden will).
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
Hallo,
wie hast Du die Datei authorized_keys erstellt und den Key eingefügt? Es muss eine Zeile pro key sein.

Gruß Götz
 

BildungsRitter

Benutzer
Mitglied seit
28. Mai 2024
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Danke für deine Nachfrage, goetz. Um ehrlich zu sein (ich glaube), ich habe die Datei über das Netzwerk (SMB) unter Windows hinzugefügt, da das Verzeichnis freigegeben war. Ich weiß, das ist nicht ganz sauber, sollte aber funktionieren.
Die Datei enthält nur eine Zeile mit dem Key. Dabei hatte ich 2 Varianten ausprobiert: das Key-Paar, das mir die DiskStation erzeugt hat und jenes, das mir PuttyGen generiert wurde.
 

Ronny1978

Benutzer
Sehr erfahren
Mitglied seit
09. Mai 2019
Beiträge
1.842
Punkte für Reaktionen
754
Punkte
128
Ich bin eher ein Linux Neuling. Aber die Generierung über PuTTY hatte für meinen Ubuntu Server nicht geklappt, bzw. musste ich glaube ich, umwandeln. Einfacher war es über die Windows Power Shell. Vielleicht dort noch einmal dein Glück probieren.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Ich generiere die Schlüssel immer auf dem Linux Host selbst.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
Hallo,
in puttygen muss Number of bits mindestens 2048 sein, der key beginnt mit ssh-rsa AA... und endet mit <Key comment>.
Wenn Du die Datei unter Windows angelegt hast kann es sein, dass das Zeilenende störend ist. Am besten Datei löschen und per vi neu erstellen und key rein kopieren.

Gruß Götz
 

Ronny1978

Benutzer
Sehr erfahren
Mitglied seit
09. Mai 2019
Beiträge
1.842
Punkte für Reaktionen
754
Punkte
128
Wie gesagt: Bin Linux Newbie ;-) und versuche dazu zu lernen.
 

BildungsRitter

Benutzer
Mitglied seit
28. Mai 2024
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Danke für eure Vorschläge.
Ich habe jetzt noch einmal versucht, das Schlüsselpaar auf der DiskStation zu generieren.

Das schien erst auch geklappt zu haben. Aber er erstellt mir keinen .ppk Datei. Nur eine .pub Datei und eine Datei ohne Dateiendung und diese lässt sich auch von Putty nicht als privater Schlüssel nutzen.

Diese Fehlermeldung erscheint dann in der Putty-Konsole:
Code:
Unable to use key file "\\[hostname]\home\.ssh\id_rsa" (OpenSSH SSH-2 private key (new format))

Vorschläge?

Ich nehme an, diese Information hättet ihr früher gebraucht. 😀
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.187
Punkte für Reaktionen
71
Punkte
68
Starte auf dem PC Puttygen, öffne "Conversions" Import und nimm die auf der DS erzeugte Datei ohne Endung. Dann kannst Du den konvertierten Key as ppk abspeichern. Siehe https://www.ionos.de/digitalguide/server/konfiguration/ssh-key-mit-putty/
Die id_rsa.pub kopierst Du nach .ssh des Zielusers als authorized_keys und korrigierst dann doch die Rechte mit chmod 0600 authorized_keys. Dann kannst Du den Test starten. Hinweis: mW. funktioniert ssh mit PubKey auf die DS nur mit Admin Usern. Dazu gab es hier mal ein paar Unterhaltungen
 

BildungsRitter

Benutzer
Mitglied seit
28. Mai 2024
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Oh, ich habe schon viel zu dem Thema gelesen, aber von der Möglichkeit des Imports und der Umwandlung nach PPK wusste ich noch nichts.

Die Fehlermeldung
Code:
couldn't load private key (unrecognized cipher name)
konnte ich beheben, indem ich mit ssh-keygen für den privaten Schlüssel kein Passwort angegeben habe.

Dann habe ich den Schlüssel mit Puttygen als PPK gespeichert (und dabei ein Passwort vergeben), den öffentlichen Schlüssel in die Datei "authorized_key" gespeichert und die Rechte gestzt.

Leider bleibt das ursprüngliche Problem bestehen. Der Schlüssel wird vom Server nicht akzeptiert.

Weitere Ideen?

Edit: Könnte es vielleicht sein, dass die ppk-Datei nicht auf einem Netzlaufwerk liegen darf, sondern in einem lokalen Verzeichnis des Rechners, auf dem ich Putty nutze (und von dem aus ich logischerweise die SSH-Verbindung aufbaue)?
 
Zuletzt bearbeitet:

Hagen2000

Benutzer
Mitglied seit
25. Mai 2016
Beiträge
339
Punkte für Reaktionen
117
Punkte
43
Hinweis: mW. funktioniert ssh mit PubKey auf die DS nur mit Admin Usern. Dazu gab es hier mal ein paar Unterhaltungen
SSH funktioniert prinzipiell nur für Benutzer der Gruppe administrators, unabhängig vom Authentifizierungsverfahren.
 

Hagen2000

Benutzer
Mitglied seit
25. Mai 2016
Beiträge
339
Punkte für Reaktionen
117
Punkte
43
@BildungsRitter Habe das mal kurz bei mir nachgestellt - funktioniert auf Anhieb.
Die Datei .ssh/authorized_keys enthält den Public-Key (nur 1 Zeile) und schaut in etwa wie folgt aus:
Code:
ssh-rsa AAAAB3Nz........== Benutzername
Der angegebene Benutzername spielt hierbei aber keine Rolle.
Mein Schlüssel ist 4096 Bits lang.
Putty benutzt den zugehörigen Private Key (.PPK-Datei).
Bist Du sicher, dass Du den Private Key (verbleibt auf deinem PC) und den Public Key (den gibst Du heraus bzw. kopierst ihn auf dein NAS in die autorized_keys-Datei) nicht verwechselt hast?
 
Zuletzt bearbeitet:

BildungsRitter

Benutzer
Mitglied seit
28. Mai 2024
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hallo, Hagen, danke für deine Antworten.

Also SSH selbst, bzw. "Putty über SSH" funktioniert ja einwandfrei.

Ich bin auch sicher, dass ich die beiden Dateinen nicht verwechselt habe. Der Public Key befindet sich in der Datei authorized_keys und die PPK Datei habe ich in Putty geladen.

Es ist wie verhext. Da ist irgendetwas Abstruses am Werk, das mir ins Handwerkpfuscht. Aber wir kommen nicht drauf, was es ist.

Ich belasse es dabei und danke euch für eure Ideen/Lösungsvorschläge.
 

matt42

Benutzer
Mitglied seit
13. Jan 2015
Beiträge
44
Punkte für Reaktionen
4
Punkte
8
Ich hatte den Fehler "server refused key" auch gerade quasi spontan, @BildungsRitter , und habe mich auf die Suche begeben.

Bei mir waren es die Rechte auf dem home Verzeichnis des users, die den Fehler ausgelöst haben, .ssh und authorized_keys waren alle in Ordnung.

Finden tust Du dies am ehesten, wenn Du kurz nach einem Login-Versuch mit den Schlüsseln in einem anderen Terminal unter root den Befehl
Code:
systemctl status sshd
eingibst. Nur dort siehst du sofort die letzten Meldungen des sshd-Daemon.

In meinem Fall dann u.a. die folgende Fehlermeldung:
Code:
Aug 21 00:50:53 xxx sshd[3971]: Authentication refused: bad ACL permission for file /volume1/homes/xxuser

Über den File-Manager konnte ich dann sehen, dass sich durch eine andere Änderung an Gruppen meinerseits Berechtigungen für User auf die homes-Verzeichnisse vererbt hatten (ACL-permissions). Sobald homes wieder korrekterweise nur noch Owner, administrators (und Ordner durchqueren für Everyone) hatte, funktionierte auch ssh mit Schlüsseln wieder.

(In anderen Tipps findet man öfter, dass homes/xxuser mit chmod angepasst werden muss, aber ich denke, häufig löscht ein restriktives chmod einfach alle ACL-Berechtigungen und löst somit auch das Problem.)
 
Zuletzt bearbeitet von einem Moderator:

BildungsRitter

Benutzer
Mitglied seit
28. Mai 2024
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Das könnte die Lösung sein. Ich werde aber an den Rechten des homes-Ordner nichts machen, den Server betreibt mein Vater und der wird fuchsteufels wild, wenn da irgendwas schief läuft.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat