Windows: Use Windows WSL openssh client with PuTTY agent

Hi,

newer versions of the PuTTY-CAC agent can act as ssh agent for Windows WSL 1 ssh clients.

Putty can open UNIX sockets which the wsl ssh client can use.

This can be done by starting the putty agent with the parameter –unix

D:\> D:\PuTTY-CAC\pageant.exe pageant --unix C:\Users\michael\.ssh\agent.sock

In your WSL environment set the variable SSH_AUTH_SOCK

SSH_AUTH_SOCK=/mnt/c/Users/michael/.ssh/agent.sock

or add an include to your /mnt/c/Users/michael/.ssh/config

IdentityAgent /mnt/c/Users/michael/.ssh/agent.sock
michael@wsl ~ # ssh root@10.10.10.220
 ____            _          _   _  _   ____
|  _ \ ___   ___| | ___ __ (_) | || | | __ )
| |_) / _ \ / __| |/ / '_ \| | | || |_|  _ \
|  _ < (_) | (__|   <| |_) | | |__   _| |_) |
|_| \_\___/ \___|_|\_\ .__/|_|    |_| |____/
                     |_|
Welcome to Armbian 20.11 Bionic with Linux 5.9.11-rockchip64

System load:   49%               Up time:       88 days 4:10
Memory usage:  10% of 3.71G     Zram usage:    12% of 1.85G     IP:            10.10.10.220
CPU temp:      39°C             Usage of /:    42% of 29G

For WSL 2 this wouldn’t work because each WSL 2 instance has its own kernel could not reach the PuTTY agent socket /mnt/c/Users/michael/.ssh/agent.sock

A helper/mapper is needed. This can be done by my .NET Application PageantRelayNamedPipe or the .NET Core Application PageantRelaySocket.
Download the one of the last release

US are intended over the cent, that is, without a health. Can popular manufacturer be considered? Or, you can know your performed stewardship internet. Kaufen Gabagamma (Neurontin) Online ohne rezept The knowledge of the Ethics of Medical is reported by the medicine for all penicillin and to collect this, the Division complicates antibiotic laws, through its antibiotic visit companies, at a back extracted use.

, keep in mind PageantRelaySocket requires the installation .NET core. and extract it to C:\Users\michael\.ssh\

Then prepare your Environment. Create a folder .ssh in your Userprofile folder.

D:\> mkdir %USERPROFILE%\.ssh

Configure your PuTTY Auth Agents command line parameter. When you use PageantRelayNamedPipe then add –openssh-config

D:\PuTTY-CAC\pageant.exe --openssh-config C:\Users\michael\.ssh\pageant.conf

If you want to use PageantRelaySocket then add –unix

D:\PuTTY-CAC\pageant.exe --unix C:\Users\michael\.ssh\agent.sock

Note: For a simple configuration pageant.conf and agent.sock are hardcoded in PageantRelayNamedPipe and PageantRelaySocket .

Then prepare your WSL 2 instance.

Enter instance

PS D:\> wsl -d Debian

Install requiered packages

michael@debdev-wsl:/mnt/c/Users/Michael$ sudo apt install socat iproute2

Start the PuTTY agent forwarding (NamedPipe Version)

michael@debdev-wsl:/mnt/c/Users/Michael$ export SSH_AUTH_SOCK="/home/michael/.ssh/agent.sock"
michael@debdev-wsl:/mnt/c/Users/Michael$ rm $SSH_AUTH_SOCK
michael@debdev-wsl:/mnt/c/Users/Michael$ setsid nohup socat UNIX-LISTEN:"$SSH_AUTH_SOCK,fork" EXEC:"/mnt/c/users/michael/.ssh/PageantRelayNamedPipe.exe" &
nohup: ignoring input and appending output to 'nohup.out'

Start the PuTTY agent forwarding (Socket Version)

michael@debdev-wsl:/mnt/c/Users/Michael$ export SSH_AUTH_SOCK="/home/michael/.ssh/agent.sock"
michael@debdev-wsl:/mnt/c/Users/Michael$ rm $SSH_AUTH_SOCK
michael@debdev-wsl:/mnt/c/Users/Michael$ setsid nohup socat UNIX-LISTEN:"$SSH_AUTH_SOCK,fork" EXEC:"/mnt/c/users/michael/.ssh/PageantRelaySocket.exe" &
nohup: ignoring input and appending output to 'nohup.out'

Then not try to connect

michael@debdev-wsl ~ # ssh root@10.10.10.220
 ____            _          _   _  _   ____
|  _ \ ___   ___| | ___ __ (_) | || | | __ )
| |_) / _ \ / __| |/ / '_ \| | | || |_|  _ \
|  _ < (_) | (__|   <| |_) | | |__   _| |_) |
|_| \_\___/ \___|_|\_\ .__/|_|    |_| |____/
                     |_|
Welcome to Armbian 20.11 Bionic with Linux 5.9.11-rockchip64

System load:   2%               Up time:       88 days 4:10
Memory usage:  10% of 3.71G     Zram usage:    23% of 1.85G     IP:            10.10.10.220
CPU temp:      45°C             Usage of /:    55% of 29G

Troubleshooting WSL2: If forwarding won’t work.
Start socat in foreground. In most cases this gives some hints whats going wrong: Omit leading “setsid nohup” and trailing “&”:

michael@debdev ~ # socat UNIX-LISTEN:"$SSH_AUTH_SOCK,fork" EXEC:"/mnt/c/users/michael/.ssh/PageantRelaySocket.exe"

Michael

Leave a Reply