Mit Windows 10 eine SSH Verbindung erstellen und ohne Passwortabfrage zugreifen – Konfiguration des ssh-agent unter Windows 10

ssh Zugriff von Windows aus einrichten - Schlüsselgenerierung und Passwortabfrage deaktivieren

Mittlerweile gehört Open-SSH unter Windows 10 zum Standard. Was natürlich bedeutet, dass man keine Drittanbieter Software wie z.B. Putty mehr benötigt. Wie genau man eine SSH-Verbindung erstellen kann, wurde bereits im Artikel: Neue Methode um mit Windows 10 1803 eine SSH Verbindung herstellen zu können, beschrieben. Allerdings gibt es eine Sache, welche noch nicht richtig läuft. Es handelt sich dabei um das Anmelden an einem SSH-Server ohne der Passwortabfrage. Natürlich stellt sich gleich die Frage, warum man das tun sollte. Hierfür gibt es ein typisches Anwendungsbeispiel. Wenn man über den SSH Zugriff ein Backup konfigurieren möchte, so wäre es durchaus von Nachteil, wenn man trotz Automatisierung immer noch das Passwort eingeben müsste. Aus diesem Grund gibt es eben den SSH-Agent. Unter Linux Systemen läuft dies auch ohne Probleme. Doch wie sieht es nun im Windows 10* Betriebssystem aus? Genau das beschreibt diese Anleitung.

Zunächst muss man Wissen, dass es sich bei dem SSH-Agent um einen Dienst handelt. Und genau darin liegt auch das Problem. Dieser läuft nicht automatisch, sondern muss manuell gestartet werden. Hierzu gibt es mehrere Optionen. Die erste wäre die Verwendung der grafischen Oberfläche. In das Suchfeld im Startmenü  tippt man “Dienste” oder “Services” ein. Anschließend öffnet sich das Konfigurationsfenster für die verschiedenen Dienste unter Windows. Hier sucht man nun entsprechend nach dem “Open SSH Authentication Agent”.  Bei der Spalte Starttyp fällt dabei sofort auf, das dieser deaktiviert ist. Möchte man ihn jetzt nur einmal verwenden, so kann man den Dienst einfach über das Eigenschaftsmenü starten. Sofern er öfters benötigt wird, kann man den Starttyp auch gleich auf “Automatisch (verzögerter Start)” stellen.

Windows 10 ssh Zugriff auf einen Server ohne Passwortabfrage konfigurieren
Windows 10 ssh Zugriff auf einen Server ohne Passwortabfrage konfigurieren

Die zweite Option wäre dabei natürlich die Verwendung der Kommandozeile. Die folgende Befehlszeile stellt den Dienst ebenso auf einen automatische verzögerten Start. Soll der Dienst nur manuell gestartet werden, so muss die Option delayed-auto mit demand ersetzt werden. Anschließend muss er nur noch mit sc start gestartet werden.

sc config ssh-agent start=delayed-auto

Grundvoraussetzung für einen Zugriff ohne Passwort sind natürlich das öffentliche und private Schlüsselpaar. Dieses muss auf dem Client erzeugt werden, von welchem man aus zugreifen möchte. Im folgenden Beispiel wurde der Zugriff von einem Windows 10 Betriebssystem auf ein Linux System eingerichtet. Im ersten Schritt erzeugt man unter Windows 10 die beiden Schlüssel. Dafür wurde der folgende Befehl verwendet.

ssh-keygen -t rsa -b 2048

Nun befinden sich im Verzeichnis .ssh im Profil des Benutzers zwei Dateien. Eine mit dem Namen id_rsa, welcher der private Schlüssel ist und keinesfalls weitergegeben werden darf. Zum anderem die Datei mit dem Namen id_rsa.pub. Dieser ist der sogenannte öffentliche Schlüssel und muss in die Datei authorized_keys im Linux System kopiert werden. Falls es diese Datei auf dem Linux Betriebssystem noch nicht gibt, muss sie angelegt werden. Die folgenden Befehle führen genau die obige Konfiguration durch. Natürlich zum einem am Windows System und zum anderen am Linux Betriebssystem. Zu beachten gilt es dabei, dass sich beide versteckten Ordner (.ssh) jeweils im Home Verzeichnis der Benutzer befinden.

scp -P 22 id_rsa.pub [email protected]:/home/test/.ssh
touch authorized_keys
cat id_rsa.pub >> authorized_keys

Am Ende ist es jetzt möglich, dass man sich ohne Passwortabfrage auf dem SSH-Server einloggt. Aber wie bereits erwähnt. Ein Passwort stellt trotz alledem eine wichtige Sicherheitsinstanz dar und sollte, wenn möglich auf alle Fälle verwendet werden. Wie man weiterhin den SSH-Zugriff auf dem Server absichert, könnt ihr im Artikel. Den Rootserver per SSH administrieren – Teil 2 der Artikelserie nachlesen.