An SSH agent that supports using FIDO/U2F security keys with PuTTY and OpenSSH for Windows.
You need a FIDO/U2F security key, obviously.
Note: Only one agent can be listening on an IPC pipe at a time. Therefore, Pageant and/or OpenSSH agent cannot be used while SK SSH Agent is running, and vice versa.
verify-required
option requires OpenSSH 8.3 or newer.~/.ssh/authorized_keys
on the server.Authentication works as it normally would with Pageant or OpenSSH agent.
no-touch-required
option is not supported because the Windows WebAuthn APIs do not support suppressing the user presence check.resident
option is not supported because the Windows WebAuthn APIs do not support resident key retrieval.ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
ssh-ed25519
sk-ecdsa-sha2-nistp256@openssh.com
sk-ssh-ed25519@openssh.com
SK SSH Agent does not require the security key to support the Credential Protection (credProtect
) FIDO extension in order to generate a key with the verify-required
option. The authenticator attests (and the SSH server can verify) that user verification was performed, without this extension.
SK SSH Agent will include the verify-required
option in the key authorization when applicable. The option will not be present in the public key, so if you use ssh-copy-id
to authorize the key then you must add the verify-required
option to the authorized_keys
file manually.
Some services, such as GitHub, do not support key authorization options. Without the verify-required
option, the key will still work, but the user verification will provide no additional security because the service will not verify that user verification was performed. In this case, Credential Protection is useful.
If you supply the path to a key file as a command-line argument when launching SK SSH Agent, it will load the key and start out minimized to the notification area.