Starting from Windows 10 build 1809, Windows has a native SSH client that is based on the OpenSSH port.
The OpenSSH client in Windows includes an
ssh-keygen – the command-line tool for creating authentication keys for SSH.
To create a pair of SSH keys in Windows, the
ssh-keygen command can be executed from a Windows command-line prompt (CMD) or PowerShell.
This note shows how to generate SSH keys in Windows using the
Cool Tip: How to fix “Bad owner or permissions on
.ssh/config”. Read More →
Generate SSH Key in Windows
Before generating the SSH keys in Windows using the
ssh-keygen command it is required to ensure that the “OpenSSH Client” feature in enabled.
For this, open the “Optional features” by pressing ⊞ Win + R to start the “Run” dialog, type in the
ms-settings:optionalfeatures command and click “OK”:
If the “OpenSSH Client” is not present in the list, click on the “Add a feature” to find and install it:
ssh-keygen command from the Windows command-line prompt (CMD) or PowerShell to generate the SSH keys:
C:\> ssh-keygen - sample output - Generating public/private rsa key pair. Enter file in which to save the key (C:\Users\<UserName>/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in C:\Users\<UserName>/.ssh/id_rsa. Your public key has been saved in C:\Users\<UserName>/.ssh/id_rsa.pub. The key fingerprint is: SHA256:QuaxSRSTbyN3pXlacwQTcE0miET5yvAT5EucH8UYD8Y <UserName>@<HostName> The key's randomart image is: +---[RSA 3072]----+ | +=o+=**=o | | ...+.E+++o | | == o =.. | | =o+@ * + . | | =OSB = o | | .* o | | . | | | | | +----[SHA256]-----+
By default, without any arguments, this command creates a key pair of a private key –
id_rsa and a public key –
id_rsa.pub and saves them into the folder
If you want to choose an algorithm and key size, while generating the SSH keys, you can do this as follows:
C:\> ssh-keygen -t rsa -b 4096 C:\> ssh-keygen -t dsa C:\> ssh-keygen -t ecdsa -b 521 C:\> ssh-keygen -t ed25519