Making an SSH key on Windows is ssh-keygen -t ed25519 in PowerShell or CMD - the same command as on Linux/macOS. The key lands in C:\Users\<you>\.ssh\id_ed25519. Use -f for a different path, -C for a comment. The team that uses this on Windows 10+ has SSH keys working in seconds.
Table of contents
- PowerShell: the modern path
- CMD: the legacy path
- Custom path with -f
- Different algorithm
- Add to SSH agent
- Copy to clipboard
- FAQ
PowerShell: the modern path
Open PowerShell (Win+X -> Windows PowerShell, or search ‘PowerShell’ in Start):
ssh-keygen -t ed25519 -C "[email protected]"
The key lands in $env:USERPROFILE\.ssh\id_ed25519. The .pub is the public key to share.
CMD: the legacy path
Open CMD (Win+R -> cmd, or search ‘Command Prompt’):
ssh-keygen -t ed25519 -C "[email protected]"
Same result, same path. The team that uses CMD for one-liners has this working in CMD too.
Custom path with -f
ssh-keygen -t ed25519 -f C:\keys\github_ed25519
Creates C:\keys\github_ed25519 and C:\keys\github_ed25519.pub. The team that has multiple keys for different services uses this.
Different algorithm
Default is ed25519 (the right choice in 2026). Older options:
ssh-keygen -t rsa -b 4096 # RSA, 4096 bits
ssh-keygen -t ecdsa -b 521 # ECDSA, 521 bits
The team that needs to connect to a very old server that doesn’t support ed25519 uses RSA 4096.
Add to SSH agent
After generation:
# Start the agent
Start-Service ssh-agent
# Add the key
ssh-add $env:USERPROFILE\.ssh\id_ed25519
The team that uses the agent doesn’t re-enter the passphrase every connection.
Copy to clipboard
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard
Now paste into GitHub’s SSH key form, the server’s authorized_keys, etc. The team that uses this avoids manual file opening.
FAQ
What if ssh-keygen is not recognized?
Install OpenSSH client: Settings -> Apps -> Optional Features -> Add -> OpenSSH Client. Or: Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0. The team that has Git for Windows already has ssh-keygen.
Where is the .ssh folder on Windows?
C:\Users\<your-username>\.ssh\ (note the leading dot - Windows Explorer may not show it by default). Show hidden files in Explorer: View -> Show -> Hidden items.
What algorithm should I use?
ed25519. Modern, fast, small. The team that has RSA from old guides can keep using it; new keys should be ed25519.
Do I need to convert the key for PuTTY?
Yes if you want a .ppk file. PuTTYgen’s Conversions -> Import key, then save as .ppk. The team that uses modern Windows Terminal + native OpenSSH doesn’t need PuTTY.
Can I use ssh-keygen on Windows Server?
Yes - the same OpenSSH client is available on Windows Server 2019+. Install-WindowsFeature -Name OpenSSH-Client. The team that manages Windows servers uses the same keygen command.
If you are sizing the infrastructure for the kind of project this post covers, the RunxBuild hosting calculator is the right place to model the line items. The compute, the memory, the storage, the bandwidth, the database - each one is a separate number, and the team’s mental model for the platform is the sum of those numbers. The RunxBuild dashboard is where the team sees the actual usage in one place.
Useful related references: