Ik gebruik Bitwarden om mijn SSH-keys te beheren. De Bitwarden Desktop-app op
Windows 11 werkt prima als SSH-agent, maar WSL2 draait in zijn eigen lichtgewicht
virtuele machine zonder directe toegang tot de Windows SSH-agent. De oplossing:
Windows named pipes doorzetten naar een Unix-socket in WSL2, met npiperelay en
socat.
Installatie#
npiperelay installeren op Windows
Download npiperelay.exe van de releases-pagina en zet het ergens toegankelijks
neer, bijvoorbeeld /mnt/c/Users/Kevin/.local/bin/npiperelay.exe.
socat installeren in WSL2
sudo apt install socatShell configureren
Voeg dit toe aan ~/.bashrc of ~/.zshrc:
export SSH_AUTH_SOCK="$HOME/.ssh/agent.sock"
ss -a | grep -q "$SSH_AUTH_SOCK"
if [ $? -ne 0 ]; then
rm -f "$SSH_AUTH_SOCK"
(setsid socat UNIX-LISTEN:"$SSH_AUTH_SOCK",fork EXEC:"/mnt/c/Users/Kevin/.local/bin/npiperelay.exe -ei -s //./pipe/openssh-ssh-agent",nofork &) >/dev/null 2>&1
fiDit zet de SSH-socket klaar, checkt of socat al luistert, en start zo nodig de relay tussen de Unix-socket en de Windows named pipe.
SSH-agent inschakelen in Bitwarden
Zet in Bitwarden Desktop, onder Instellingen, de SSH-agent-optie aan.
Controleren#
ssh-add -lin een nieuwe WSL2-terminal — je zou nu de keys uit Bitwarden moeten zien.
Problemen oplossen#
- Een “Agent refused operation”-fout betekent meestal dat Bitwarden goedkeuring voor het gebruik van de key vraagt via zijn eigen UI.
- Controleer de pipe-naam via PowerShell:
Get-ChildItem \\.\pipe\ | Where-Object Name -like '*ssh*'- Zorg dat
~/.ssh/bestaat met de juiste rechten:
chmod 700 ~/.ssh