'Share SSH keys with VS Code Devcontainer running with Docker's WSL2 backend

I'm reading these docs on sharing SSH keys with a dev container, but I can't get it to work.

My setup is as follows:

  • Windows 10 with Docker Desktop 4.2.0 using the WSL2 backend

  • A WSL2 distro running Ubuntu 20.04

  • In WSL2, I have ssh-agent running and aware of my key:

    λ ssh-add -l
    4096 SHA256:wDqVYQshQBCG/Sri/bsgjEaUFboQDUO/9FJqhFMncdk /home/taschan/.ssh/id_rsa (RSA)
    

The docs say

the extension will automatically forward your local SSH agent if one is running

But if I do ssh-add -l in the devcontainer, it responds with Could not open a connection to your authentication agent.; and of course starting one (with eval "$(ssh-agent -s)") only starts one that doesn't know of my private key.

What am I missing?



Solution 1:[1]

I also had quite a lot of trouble to get this to work. The following steps might help troubleshooting:

  1. Check that ssh-agent is running on your host and the key is added

    Run ssh-agent -l on Windows and expect to see the name of your key

  2. Check that VSCode forwards the socket

    Search ssh-agent in the startup log. I had the message

    ssh-agent: SSH_AUTH_SOCK in container (/tmp/vscode-ssh-auth-a56c4b60c939c778f2998dee2a6bbe12285db2ad.sock) forwarded to local host (\\.\pipe\openssh-ssh-agent).
    

So it seems that VSCode is directly forwarding the Windows SSH agent here (and not an SSH agent running in your WSL).

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Jörn Schellhaas