1. Building 1.1 Open Windows PowerShell. 1.2 Create a workspace folder: > mkdir workspace 1.3 Set the WORKSPACE environment variable: > $Env:WORKSPACE = 'C:\Users\pedro\workspace\' 1.4 Set the VS140COMNTOOLS environment variable: > $Env:VS140COMNTOOLS = 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\' 1.5 Clone martelletto/openssh-portable's fido2 branch: > git clone --branch fido2 https://github.com/martelletto/openssh-portable 1.6 Build OpenSSH for Windows: > .\openssh-portable\contrib\win32\openssh\OpenSSH-build.ps1 2. Pointing PowerShell to the ssh built in the previous step 2.1 Prepend PATH: > $Env:PATH = "C:\Users\pedro\openssh-portable\OpenSSH-Win64_symbols\;" + $Env:PATH 2.2 Check ssh's version string: > ssh -V OpenSSH_for_Windows_8.6p1, LibreSSL 3.3.3 3. Testing key generation 3.1 Create a ecdsa-sk credential on a security key: > ssh-keygen -t ecdsa-sk 3.2 Configure the ssh public key (C:\Users\pedro\.ssh\id_ecdsa_sk.pub) in GitHub. 4. Testing standalone ssh in PowerShell > ssh git@github.com Hi martelletto! You've successfully authenticated, but GitHub does not provide shell access. 5. Testing git + ssh in PowerShell 5.1 Set the GIT_SSH environment variable: > $Env:GIT_SSH = 'C:\Users\pedro\openssh-portable\OpenSSH-Win64_symbols\ssh.exe' 5.2 Clone a repository (can be public) over ssh: > git clone ssh://git@github.com/yubico/libfido2 6. Pointing WSL2 to the ssh built in step 1.6 6.1 Prepend PATH: $ export PATH=/mnt/c/Users/pedro/openssh-portable/OpenSSH-Win64_symbols/:$PATH 6.2 Check ssh's version string: $ ssh.exe -V OpenSSH_for_Windows_8.6p1, LibreSSL 3.3.3 7. Testing standalone ssh in WSL2 > ssh.exe git@github.com Hi martelletto! You've successfully authenticated, but GitHub does not provide shell access. 8. Testing git + ssh in WSL2 8.1 Set the GIT_SSH environment variable: $ export GIT_SSH=/mnt/c/Users/pedro/openssh-portable/OpenSSH-Win64_symbols/ssh.exe 8.2 Clone a repository (can be public) over ssh: $ git clone ssh://git@github.com/yubico/libfido2