How to set up an SSH config-file for beginners [closed]
Generally, in Windows machine, the SSH config file stored in the following location: /c/Users/PC_USER_NAME/.ssh/
Just follow the steps in below (if you're using the Git Bash):
- Go to the .ssh directory
/c/Users/PC_USER_NAME/.ssh/
, click right mouse button and choose "Git Bash Here" - Create a file named "config" with the following command:
touch config
- Now open the config file with the command:
nano config
- Now write the following lines inside the config file
Let's assume you've created two files named id_rsa_hub
for Github and id_rsa_lab
for GitLab
# GITHUB
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_hub
# GITLAB
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_lab
By default, your %HOME%
will be your %USERPROFILE%
To create new keys, make sure to add to your environment variables:
set GH=C:\path\to\git
set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%PATH%
That way, you will have all the commands you need, including ssh-keygen
, on Windows 10, right from any CMD session (without even opening a git bash
session).
To create a new SSH key, try first to use an SSH key without passphrase, and make sure to create it with the legacy format in a CMD session (not git bash):
ssh-keygen -m PEM -t rsa -P "" -f %USERPROFILE%\.ssh\myNewKey
'myNewKey
': no extension; no '.xxx
'.
(The -m PEM
is for producing the legacy format, because not all remote servers are able to understand then new OPENSSH format)
Then add your %USERPROFILE%\.ssh\config
file, to associate your new key to your service (in which you will have registered your %USERPROFILE%\.ssh\myNewKey.pub
public key)
See "Multiple Github Accounts With Git In Windows" for an concrete example, as in:
ssh-keygen -m PEM -t rsa -P "" -f %USERPROFILE%\.ssh\github_key
Then, in %USERPROFILE%\.ssh\config
:
Host gh
HostName github.com
User git
IdentityFile ~/.ssh/github_key
That way, you can replace the remote URL of GitHub repository with:
gh:<yourGitHubUser>/<yourGitHubRepo>