Setting up SSH on Windows without duplicating your work
Most Windows machines end up with two SSH clients: the one Microsoft ships and the one you installed. That is fine, as long as each has a clear job and you know which agent holds your keys.
The built-in OpenSSH client
It is an optional feature that is enabled by default on current builds. Its per-user config lives at %USERPROFILE%\.ssh\config and uses the same syntax as on any other platform:
Host jump HostName jump.example.com User admin IdentityFile ~/.ssh/id_ed25519
After that, ssh jump is all you type.
Turn on the agent service
Set-Service ssh-agent -StartupType Automatic Start-Service ssh-agent ssh-add $env:USERPROFILE\.ssh\id_ed25519
The service stores the unlocked key for the Windows session, which is the OpenSSH equivalent of Pageant.
Keep PuTTY and OpenSSH in their lanes
- PuTTY for saved GUI profiles, serial consoles and Telnet devices.
- OpenSSH for scripting, Git and anything expecting a config file.
- Convert keys once in PuTTYgen so the same identity works in both.
- Run one agent at a time to avoid confusing failures.
Client settings worth standardizing
- ServerAliveInterval 30 in the OpenSSH config, matching PuTTY's keepalive.
- StrictHostKeyChecking left on — silencing it defeats the purpose.
- A per-environment key rather than one key for everything.
Questions people ask about this
Which client does Git for Windows use?
It depends on the GIT_SSH environment variable — either its bundled OpenSSH or Plink from PuTTY. Check that variable when Git authentication behaves differently than your terminal.
Can I use one key file with both clients?
Yes. Keep the OpenSSH format as the original and export a .ppk copy from PuTTYgen.
Independent guide. Software names belong to their respective developers; always download from the vendor's own site. Back to all Windows SSH guides.