Logo von Thomas Waldecker Software Engineering
Veröffentlichungsdatum

SSH in WSL mit KeePassXC und ssh-agent

Autoren
  • avatar
    Name
    Thomas Waldecker

Die wohl am besten und einfachsten funktionierende Konfiguration ist, wenn die ssh-keys von KeePassXC in den laufenden SSH-Agent hinzugefügt werden. Mit WSL war mir bisher noch keine Lösung bekannt.

Die SSH-Keys werden mit private-key und passphrase als Passwort in KeePassXC eingetragen und die Konfiguration des SSH-Agent aktiviert.

Die GIT_SSH-Umgebungsvariable in Windows sollte nicht gesetzt sein.

Dann aktiviert man den ssh-agent in Windows (mit Administrator-Rechten):

Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
# damit prüft man, dass der Service läuft:
Get-Service ssh-agent

Siehe:

Damit sollten SSH-Verbindungen mit Key in Windows von der Powershell funktionieren (man muss zweimal Enter drücken):

PS C:\Users\Thomas\Projekte> ssh git@github.com
PTY allocation request failed on channel 0
Hi twaldecker! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

In WSL wird dann der Windows-Client ssh.exe konfiguriert:

❯ cat /etc/zsh/zshenv
# ...
alias ssh="ssh.exe"

Und für git auch der ssh command:

git config --global core.sshCommand ssh.exe

Damit funktioniert die SSH-Verbindung in WSL mit Keys aus KeePassXC, welche automatisch beim Entsperren der Datenbank zum Windows ssh-agent hinzugefügt werden.

Man muss seine private Keys nicht aus KeePassXC speichern und in WSL ablegen.

Andere Methoden

Man kann den ssh-agent per socket von Windows zu WSL weiterleiten.