Mit Bash on Ubuntu on Windows kann auf Windows 10 ein Windows Subsystem for Linux genutzt werden. Damit lassen sich viele Linux-Befehle auf Windows ausführen, wie beispieslweise auch ssh
. Hier zeige ich euch, wie die Erstellung eines SSH-Keys abläuft, der im Subsystem und von Windows genutzt werden soll.
Update vom 14. Mai 2018: Nach einem Update auf den Insider Build 17063 müsst ihr folgende Kommandos auf dem Linux-Subsystem ausführen, damit es weiterhin funktioniert, wie Entity Black in seinem Kommentar unter dem englischsprachigen Artikel schreibt:
sudo umount /mnt/c
sudo mount -t drvfs C: /mnt/c -o metadata
Update vom 29. Mai 2018: Es scheint, dass die oben genannten Schritte das Problem nur temporär lösen, wie in den Kommentaren unter dem englischen Artikel geschrieben. Um das zu beheben muss eine Konfigurationsdatei bearbeitet/erstellt werden. Es gibt drei leicht verschiedene Ansätze dazu in den Kommentaren – einen von Andrew, einen von Entity Black, and einen von Vince.
Update vom 10. Juli 2018: Darren hat in seinem Kommentar unter dem englischsprachigen Artikel darauf hingewiesen, dass die Nutzung von SSH-Aliasen mit dem hier beschriebenen Vorgehen nicht funktioniert, und wie das gelöst werden kann.
Zielsetzung
Ich wollte einen SSH-Key erstellen, den ich sowohl in dem Linux-Subsystem als auch von normalen Windows-Programmen aus nutzen kann. Im Optimalfall soll es den Key auf der Festplatte nur einmal geben. Wie ihr das Linux-Subsystem installieren könnt, zeigt ein Beitrag auf howtogeek.com.
Lösung
Im Windows-Dateipfad wird der SSH-Key standardmäßig unter C:/Users/Florian/.ssh
abgelegt, was im Linux-Subsystem dem Pfad /mnt/c/Users/Florian/.ssh
entspricht. Standard-Ort für einen SSH-Key im Subsystem ist ~/.ssh
.
Vor dieser Beitragsaktualisierung hatte ich eine nicht wirklich optimale Lösung, bei der die Key-Dateien immer zweimal existieren mussten. In den Kommentaren bei der englischsprachigen Version gab es aber einige Leute mit besseren Lösungen – einer davon Andrey Chirkov, der einen Einzeiler gepostet hat, die ihr im Windows Subystem for Linux ausführen müsst (der ~/.ssh
-Ordner darf da noch nicht existieren):
Code-Sprache: Bash (bash)ln -s /mnt/c/Users/Florian/.ssh ~/.ssh
Damit wird ein Link von ~/.ssh
zu /mnt/c/Users/Florian/.ssh
erstellt. Somit brauchen wir die SSH-Keys nur noch im Windows-Pfad abzulegen und können auch über die Linux-Shell darauf zugreifen.
Nachdem ich das ausprobiert habe, ist mir aufgefallen, dass diese Lösung auch Teil der Stack-Exchange-Antwort war, die ich in der älteren Version des Artikels verlinkt habe. Ich weiß nicht, warum ich es damals nicht zum Laufen gebracht habe …
Die Originalversion des Artikels wurde am 8. März 2017 veröffentlicht.