- Veröffentlichungsdatum
SSH in WSL mit KeePassXC und ssh-agent
- Autoren
- 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
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.