So richten Sie die SSH-Authentifizierung mit öffentlichen Schlüsseln unter Windows ein

Die Einrichtung der SSH-Schlüsselauthentifizierung unter Windows klingt zunächst kompliziert, besonders wenn man es noch nie gemacht hat. Hat man sich aber erst einmal mit den Befehlen und Konfigurationsdateien vertraut gemacht, ist es eine wirklich elegante Methode, sich anzumelden, ohne ständig Passwörter eingeben zu müssen. Außerdem ist es sicherer, wenn man es richtig macht. Diese Anleitung führt Sie durch die Generierung von RSA- oder EdDSA-Schlüsseln, das Kopieren des öffentlichen Schlüssels auf Ihren Server, die Anpassung der Konfigurationen und die Einrichtung einer sicheren Verbindung. Mit der Zeit werden Sie sich mühelos per SSH in Ihren Windows-Rechner oder andere Server einloggen können – ganz ohne lästige Passwortabfragen.

So beheben Sie Probleme mit der SSH-Authentifizierung unter Windows mithilfe von Schlüsseln

Generieren eines SSH-Schlüsselpaares unter Windows

Als Erstes benötigen Sie ein privates und ein öffentliches Schlüsselpaar. Dies ist die Grundlage von SSH mit Schlüsselverbindung. Unter Windows 10/11 oder Windows Server 2019/2022 ist die einfachste Methode die Installation des OpenSSH-Clients, falls dieser noch nicht vorhanden ist. Sie können ihn über PowerShell hinzufügen:

Add-WindowsCapability -Online -Name OpenSSH. Client~~~~0.0.1.0

Bei älteren Windows-Versionen müssen Sie Win32-OpenSSH möglicherweise von GitHub herunterladen, bei neueren Versionen ist es jedoch bereits integriert.

Nach der Installation öffnen Sie einfach ein PowerShell-Fenster (Administratorrechte sind nur für Systemarbeiten erforderlich) und generieren Ihren Schlüssel. Ich empfehle heutzutage die Verwendung von ED25519, da es schneller und sicherer ist – führen Sie einfach folgenden Befehl aus:

ssh-keygen -t ed25519

Sie werden gefragt, wo der Schlüssel gespeichert werden soll – standardmäßig ist C:\Users\YourUser\.ssh\id_ed25519dies der Pfad. Sie können die Eingabetaste drücken, um den Pfad zu bestätigen, oder einen benutzerdefinierten Pfad angeben. Anschließend werden Sie nach einer Passphrase gefragt. Ehrlich gesagt überspringe ich diesen Schritt normalerweise, um sie nicht jedes Mal eintippen zu müssen. Das stellt jedoch ein Sicherheitsrisiko dar, falls jemand Zugriff auf Ihren privaten Schlüssel hat. Denken Sie daran: Wenn Sie keine Passphrase festlegen, kann sich jeder, der Ihren Schlüssel findet, ebenfalls anmelden.

Es werden zwei Dateien im Ordner.ssh erstellt : – id_ed25519(Ihr privater Schlüssel, bewahren Sie diesen sicher auf!) – id_ed25519.pub(Ihr öffentlicher Schlüssel, den Sie an Ihren Server senden)

Um Ihnen die Arbeit zu erleichtern, fügen Sie anschließend Ihren privaten Schlüssel wie folgt zum SSH-Agenten hinzu:

set-service ssh-agent -StartupType Automatic Start-Service ssh-agent ssh-add "$env:UserProfile\.ssh\id_ed25519"

Auf manchen Rechnern funktioniert dies nicht beim ersten Mal einwandfrei. Starten Sie den Rechner daher gegebenenfalls neu oder starten Sie den Dienst manuell. So sind Ihre privaten Schlüssel geladen und einsatzbereit, bevor Sie die Verbindung herstellen.

Serverkonfiguration – Verschieben des öffentlichen Schlüssels auf die Remote-Windows-Server

Als Nächstes müssen Sie auf den Windows-Rechner zugreifen, id_ed25519.pubauf den Sie zugreifen möchten. Wenn Sie sich mit OpenSSH mit einem anderen Windows-Rechner verbinden, kopieren Sie den öffentlichen Schlüssel nach C:\Users\ Benutzername \.ssh\authorized_keys. Sie können dies per SCP tun oder, falls Sie es sich einfach machen möchten, den Schlüssel per Kopieren und Einfügen einfügen.

scp C:\Users\youruser\.ssh\id_ed25519.pub user@remote-win:/c/Users/user/.ssh/authorized_keys

Stellen Sie sicher, dass der Ordner „.ssh“ und die Datei „authorized_keys“ die korrekten Berechtigungen haben. Niemand möchte, dass andere Benutzer diese Dateien lesen, insbesondere nicht Administratoren, die keinen Zugriff darauf haben sollten. Es empfiehlt sich, die Berechtigungen explizit festzulegen.

icacls "C:\Users\username\.ssh\authorized_keys" /inheritance:r /grant username:F

Oder verwenden Sie PowerShell, Set-Aclfalls Sie lieber Skripte schreiben.Überprüfen Sie außerdem Ihre SSH-Serverkonfiguration – öffnen Sie sie C:\ProgramData\ssh\sshd_configin Notepad und stellen Sie sicher, PubkeyAuthentication yesdass die Zeile nicht auskommentiert ist. Falls nicht, entfernen Sie einfach das # am Anfang. Möglicherweise müssen Sie auch die Option deaktivieren, StrictModesindem Sie sie #StrictModes yesauf ändern StrictModes no. Sie kennen Windows ja: Es gibt immer irgendwelche Einstellungen, an denen man herumtüfteln kann.

Testen Ihrer SSH-Verbindung – Kein Passwort erforderlich

Wenn Sie nun versuchen, sich mit dem Befehl zu verbinden:

ssh [email protected]

Wenn Ihre Schlüssel korrekt eingerichtet sind, sollten Sie sich ohne Passwortabfrage anmelden können, vorausgesetzt, Ihr privater Schlüssel hat keine Passphrase oder Sie haben ihn dem Agenten hinzugefügt. Beim ersten Mal fragt SSH, ob Sie dem Host vertrauen – antworten Sie einfach mit „Ja“, und der Fingerabdruck wird zukünftig als vertrauenswürdig eingestuft. Falls Sie eine Zugriffsverweigerung erhalten, überprüfen Sie, ob Ihr öffentlicher Schlüssel in der Datei „authorized_keys“ enthalten ist und die Berechtigungen korrekt sind. Manchmal muss der SSH-Dienst nach Konfigurationsänderungen oder dem Kopieren der Schlüssel neu gestartet werden.

Bonus-Tipp: Sie können den Schlüssel auch explizit angeben:

ssh [email protected] -i C:\Users\youruser\.ssh\id_ed25519

Das ist praktisch, wenn man mehrere Tasten gleichzeitig bedient oder sich nicht mit dem Agenten herumschlagen möchte.

Anmeldung als Administrator – Spezielle Tricks

Administratorkonten erfordern einige zusätzliche Schritte. Windows verwendet die Datei administrators_authorized_keys im Verzeichnis C:\ProgramData\ssh. Dort müssen Sie Ihren öffentlichen Schlüssel hinzufügen und sicherstellen, dass die Berechtigungen streng begrenzt sind – nur Administratoren und SYSTEM sollten Zugriff haben. Verwenden Sie icaclsdie entsprechenden PowerShell- Get-AclBefehle, Set-Aclum diese Datei zu schützen.

Wenn Sie die Passwortanmeldung vollständig deaktivieren möchten, setzen Sie die entsprechenden Einstellungen PasswordAuthentication nound sshd_configstarten Sie den SSH-Dienst mit dem Befehl `ssh –no- password` neu Restart-Service sshd. Gehen Sie dabei vorsichtig vor – Sie wollen sich ja nicht komplett aussperren!

Schließlich die Protokolle

SSH-Protokolle finden Sie in der Ereignisanzeige unter Anwendungs- und Dienstprotokolle > OpenSSH > Betriebsbereit. Wenn alles funktioniert, sehen Sie dort Ereignisse wie diese sshd: Accepted publickey for username– das ist immer ein gutes Zeichen. Andernfalls geben Ihnen diese Protokolle Aufschluss über die Fehlerursache – beispielsweise Berechtigungsprobleme, Konfigurationsfehler oder Probleme mit Schlüsseln.

Alles in allem erfordert die Einrichtung etwas Geduld, aber die erhöhte Sicherheit und der Komfort lohnen sich. Folgen Sie einfach den Schritten, überprüfen Sie die Berechtigungen und bewahren Sie Ihre privaten Schlüssel sicher auf. Es ist ein befriedigendes Gefühl, wenn alles reibungslos funktioniert.

Zusammenfassung

  • Generieren Sie SSH-Schlüssel mitssh-keygen
  • Kopieren Sie den öffentlichen Schlüssel auf den Remote-Windows-Rechner.
  • Stellen Sie sicher, sshd_configdass die Authentifizierung mit öffentlichen Schlüsseln zugelassen ist.
  • Fügen Sie Ihren Schlüssel mit den entsprechenden Berechtigungen zur Datei authorized_keys hinzu.
  • sshMit oder ohne Flag verwenden -i, um eine Verbindung herzustellen

Zusammenfassung

Dieser ganze Vorgang kann etwas knifflig sein, insbesondere was Berechtigungen und Konfigurationsdateien angeht. Ist er aber einmal eingerichtet, bietet er eine deutlich elegantere und sicherere Authentifizierungsmethode. Im Grunde ist es eine einmalige Einrichtung, die sich beim nächsten Login auszahlt. Hoffentlich hilft das allen, die Probleme haben, SSH unter Windows ohne Passwörter zum Laufen zu bringen. Viel Erfolg und hoffentlich spart es langfristig Zeit.