** There is a updated English Version of this Article **

Ich möchte nicht großartig umschweifen und hier das Subsystem für Linux bewerten, sondern viel mehr direkt zum Punkt kommen. Das Linux Subsystem für Windows ist für mich persönlich brauchbar, steckt aber "noch" in Kinderschuhen. Ich nutze es um gerne eine native SSH Umgebung zu haben mit der ich schnell und einfach auf beliebige Linux Server verbinden oder kopieren kann. Sprich ein schneller SSH Client mit bekannten befehlen und einer bash.

Der größte Schmerz hatte ich bisher mit dem von mir verinnerlichtem Workflow meines SSH Agent über Keepass. Alle SSH private Keys liegen bei mir sicher verstaut in KeePass, dieses wird beim Verlassen des PCs automatisch gesperrt. Nutze ich einen SSH Login durch, früher z.B. putty oder mobaxterm, fordert der KeeAgent nur mein Keepass Masterpasswort. Damit kann ich beliebige Private Keys mit sicheren Kennwörter verwenden.

Im Ubuntu für Windows war das nutzen eines pageant bisher nur schwer möglich, das Subsystem kapselt sich verständlicherweise komplett vom Windows ab. Eine direkte Interaktion und damit Zugriff auf den pageant ist, anders als z.B. bei Cygwin, nicht möglich.

Über die Lösung bin ich die Tage bei github gestolpert, ein pageant Helper für das Linux Subsystem für Windows welcher als Schnittstelle zwischen dem Linux pageant und dem Windowspart z.B. KeeAgent steht.

Installation

  1. ZIP Files von der Release Seite (es steht auch die Source zum selbstbauen zur Verfügung, wer mag)
  2. In einen Ordner entpacken welcher durch euer Windows Linux erreichbar ist.
    Ich habe dazu in meinem Windows Homedir ein ubuntu Verzeichnis angelegt und als Symbolischen Link in mein Linux Homedir verküpft. (Siehe Screenshot)
    Konsole SSH Linux Subsystem Windows Bash Ubuntu
  3. Nun die im Linux homedir befindliche .bashrc editieren
  4. Hinzugefügt wird folgender Code, bitte den Pfad zum Agent (/mnt/c/Users/mg/…) entsprechend anpassen:
# using pagent / Keepass for Authentication
# see: https://tcpip.wtf/de/ubuntu-subsystem-windows-keepass-keeagent-pageant-linux-ssh.htm
# killing old running socket
echo -n "pageant:"
/mnt/c/Users/mg/Documents/ubuntu/weasel-pageant-1.0/weasel-pageant -k >/dev/null 2>/dev/null
eval $(/mnt/c/Users/mg/Documents/ubuntu/weasel-pageant-1.0/weasel-pageant -r -a "/tmp/.weasel-pageant-$USER") >/dev/null 2>/dev/null
sleep .5
sshkeysloaded=$(ssh-add -l|grep -c SHA)
if [[ $sshkeysloaded -gt 0 ]] ; then
    echo -e "\e[92m OK, ready for Agent forward, loaded $sshkeysloaded keys."
 else
    echo -e "\e[91m Fail, no keys found or pageant connection failed. "
fi
echo

Das war es auch schon, wenn nun euer Windows pagent bereit ist und Keys geladen hat wird beim öffnen einer neuen Bash automatisch der Link hergestellt. Künftig ist es dann per SSH möglich die in Keepass pageant hinterlegten Keys zur Passwort freien Authentifizierung zu verwenden.

Nach start der Windows Bash zeigt das in die .bashrc eingefügte Script auch direkt ob der Link erfolgreich war und wie viele Keys geladen wurden. (Siehe Screenshot oben)

KeeAgent for Keepass

✉ MG// CEST

Follow Icon
Don’t miss out and subscribe by email:
Don't worry! NO Spam and FREE; Receive a summarizing email for new posts, easy to unsubscribe at any time.
← Other Blog Posts