Load SSH keys automatically on Windows (OpenSSH)
Reference for loading SSH keys if you use Windows 10 or later and its built-in OpenSSH client.
Read time 2 minutesLast updated 22 days ago
If you use Windows and its built-in OpenSSH client, follow these steps to configure the OpenSSH client so you can use your passphrase-protected SSH key without prompts.
Prerequisites
- Windows 10 or later.
Before you begin
Check if you have any existing SSH keys. Refer to the GitHub Docs article, Checking for existing SSH keys.
If you don't have an SSH key:
- Create one by following the GitHub Docs article, Generating a new SSH key.
- Add the new SSH key to your GitHub account, by following the GitHub Docs article, Adding a new SSH key to your GitHub account.
Procedure
-
Check ifexists. Note: In some applications, such as Git Bash,
C:\Users\<YourUserName>\.ssh\configis a hidden subdirectory..ssh -
Createif it doesn't exist.
C:\Users\<YourUserName>\.ssh\config -
Add the following content toto set the key to load in the authentication agent and specify its use by the target server. Make sure you add this entry before any global settings marked as
C:\Users\<YourUserName>\.ssh\config.Host *Host SERVER_NAME IdentitiesOnly yes IdentityFile FILE_PATH- is the server that uses the file specified by
SERVER_NAME. A sample value isIdentityFile.github.com - is the fully qualified path to the SSH file you created. A sample value is
FILE_PATH, whereC:\Users\<YourUserName>\.ssh\<FILE>might be<FILE>,id_rsa,id_ecdsa, or a custom name.id_ed25519
Example:Host github.com IdentitiesOnly yes IdentityFile C:/Users/user1/.ssh/id_ed25519 -
Open the Windows PowerShell, making sure you open it by selecting Run as Administrator.
-
Configure the SSH Authentication Agent service so it starts each time you reboot your computer, by running the following command:Get-Service ssh-agent | Set-Service -StartupType Automatic
-
Start the service, by running the following command:Start-Service ssh-agent
-
Check that the service is running, by running the following command and confirming that thevalue is
Status:RunningGet-Service ssh-agent -
Load your key file into the, replacing
ssh-agentwith the actual file name of your key, then type your passphrase, if prompted.<FILE>ssh-add $env:USERPROFILE\.ssh\<FILE>Example:ssh-add $env:USERPROFILE\.ssh\id_ed25519 -
Make sure Git uses the Windows OpenSSH client instead of the SSH client included with Git, by using either of the following methods:
-
For system-wide configuration, create an environment variable namedwith a value of
GIT_SSH_COMMAND. Important: Make sure you use forward slashes in the path.C:/Windows/System32/OpenSSH/ssh.exe -
To set the configuration for a specific scope, run the followingcommand in a terminal. Refer to the git config documentation for details. For example:
git configgit config --global core.sshCommand C:/Windows/System32/OpenSSH/ssh.exe
-
You can now use the Unity Package Manager to fetch packages from that Git repository over SSH using your passphrase-protected SSH key.