juemuc
Goto Top

SSH-Key für User unter Windows 11 (Pro) zieht nicht

Hallo zusammen,

wenn ich die Datei authorized_keys im Pfad C:/Users/USERNAME/.ssh mit dem korrekten Schlüssel ablege, muss ich trotzdem beim ssh-Zugriff (über Putty) neben dem User auch das PSW eingeben.
Ändere ich in der sshd_config die Zeile AuthorizedKeysFile .ssh/authorized_keys

#AuthorizedKeysFile	.ssh/authorized_keys
AuthorizedKeysFile __PROGRAMDATA__/ssh/authorized_keys

und kopiere die Datei authorized_keys in das Verzeichnis "ProgramData/..., funktioniert der Zugriff per ssh-key. Wer hat eine Idee? Das gleiche Problem tritt auch bei einem Windows 10-PC auf.

Hier habe ich auch alles geprüft.

Viele Grüße
Jürgen
screenshot 2024-04-02 191205

Content-ID: 62625820148

Url: https://administrator.de/contentid/62625820148

Ausgedruckt am: 24.11.2024 um 22:11 Uhr

12168552861
12168552861 02.04.2024 aktualisiert um 20:35:41 Uhr
Goto Top
MS schreibt per Default für die Gruppe der lokalen Administratoren den Pfad der authorized keys per Direktive um mittels folgender Zeilen in der config
Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Wenn dein User also Mitglied der lokalen Gruppe der Administratoren ist, musst du entweder den Public Key in diese Datei legen oder die Zeilen in der Config auskommentieren .

https://asheroto.medium.com/openssh-public-key-authentication-on-windows ...
https://superuser.com/questions/1510227/authorized-keys-win-10-ssh-issue

Gruß pp.
aqui
aqui 02.04.2024 um 20:47:39 Uhr
Goto Top
Zu beachten ist auch das PuTTY Keys nicht mit OpenSSH Keys kompatibel sind und konvertiert werden müssen.
https://www.simplified.guide/putty/convert-ssh-key-to-ppk
Lesenswert zu dem Thema:
https://www.heise.de/select/ct/2022/21/2223709091059562015
juemuc
juemuc 02.04.2024 um 20:49:57 Uhr
Goto Top
Hallo puderpader,

für Admin-User funktioniert es ja auch. Ich benötige den Zugriff für einen "normalen" User. Selbst wenn ich diese beiden Zeilen auskommentiere und den Dienst neu starte, funktioniert es nicht mit dem Key unter ./ssh/authorized_keys.

Ich verstehe es weiterhin leider nicht.

Viele Grüße
Jürgen
juemuc
juemuc 02.04.2024 um 20:57:19 Uhr
Goto Top
Hallo aqui,

die Keys habe ich mit puttygen generiert und per copy/paste übertragen. Am Key kann es nicht liegen, da der Key ja funktioniert, wenn die Datei unter __PROGRAMDATA__/ssh/authorized_keys abgelegt wurde. Ausserdem funktioniert dieser Key auch auf anderen (Linux-Systemen).

Viele Grüße
Jürgen
12168552861
Lösung 12168552861 02.04.2024 aktualisiert um 21:27:37 Uhr
Goto Top
Schau in deine OpenSSH Event logs da steht wieso es bei dir nicht will
https://learn.microsoft.com/en-us/windows-server/administration/openssh/ ...
Klappt hier ohne Probleme.

Zeig mal deine sshd_config

Setze mal StrictModes no für den Fall das deine Berechtigungen nicht stimmen.
https://woshub.com/using-ssh-key-based-authentication-on-windows/
aqui
aqui 02.04.2024 aktualisiert um 21:34:19 Uhr
Goto Top
die Keys habe ich mit puttygen generiert und per copy/paste übertragen.
Bedenke das du die NICHT auf einem OpenSSH Host wie Linux usw. benutzen kannst!! Die sind nicht kompatibel!
https://www.tbs-certificates.co.uk/FAQ/en/putty-ppk-vers-openssl-openssh ...
https://www.ionos.com/digitalguide/server/configuration/use-ssh-keys-wit ...
juemuc
Lösung juemuc 02.04.2024 um 21:56:44 Uhr
Goto Top
Hallo puderader,
StrictModes no war die Lösung. Damit funktioniert es. Vielen Dank für den Tipp. Das hätte ich alleine nie gefunden.

Ist dies notwendig, da der private-key nicht passwortgeschützt ist oder hat dies einen anderen Grund?

hallo aqui,
ich habe diesen Schlüssel in einem Ubuntu (23.04) und einen PI-OS (bookworm) hinterlegt und der Zugriff über putty erfolgt ohne PSW. In puttygen steht ja extra, dass man hier den Schlüssel kopieren kann.

Viele Grüße
Jürgen
screenshot 2024-04-02 215427
12168552861
Lösung 12168552861 03.04.2024 aktualisiert um 18:06:39 Uhr
Goto Top
Zitat von @juemuc:

Hallo puderader,
StrictModes no war die Lösung. Damit funktioniert es. Vielen Dank für den Tipp. Das hätte ich alleine nie gefunden.

Ist dies notwendig, da der private-key nicht passwortgeschützt ist oder hat dies einen anderen Grund?
Nein, das ist nur nötig wenn deine Berechtigungen auf die authorized_keys oder Verzeichnis nicht stimmen und zu viele User außer dem User selbst auf die Datei Schreibrechte haben. Ist unter Linux ja nicht anders,
Im Normalfalls sind das
chmod 700 ~/.ssh
chmod 644 ~/.ssh/authorized_keys
Also für das Verzeichnis RWX nur für den Owner selbst und sonst niemand etwas anderes und für das File RW für den Owner und alle anderen nur R.

StrictModes
	       Specifies whether sshd(8) should	check file modes and ownership
	       of  the user's files and	home directory before accepting	login.
	       This is normally	desirable because novices  sometimes  acciden-
	       tally  leave  their directory or	files world-writable.  The de-
	       fault  is  yes.	  Note	 that	this   does   not   apply   to
	       ChrootDirectory,	 whose	permissions  and ownership are checked
	       unconditionally.
https://man.freebsd.org/cgi/man.cgi?sshd_config(5)


WICHTIG ist primär das der User dem der Key gehört auch der Besitzer ist, auch vom übergeordneten Verzeichnis. Nur dann klappt die Auth per Key.

screenshot
juemuc
juemuc 03.04.2024 um 17:58:59 Uhr
Goto Top
Hallo puderpader,

danke für die ausführliche Info. Die Besitzerechte waren ok. Da ich aber das nur die Rechte waren nicht korrekt, da ich das Verzeichnis .ssh und die Datei authorized_keys mit einem anderen User angelegt hatte. Ich hatte den User unter Windows zu zum runterfahren des Systems angelegt. Bei den Linux-Systemen hatte ich immer den betroffenen User verwendet. Vielen Dank noch einmal für die Geduld und Hilfe.

Viele Grüße
Jürgen