How to Set up an Ssh Config-File for Beginners [Closed]

First I am fairly new to SSH.

From this question I have seen the need and benefit of setting up an SSH config file. While I was doing my research I noticed that there is a lot to know on SSH and I also found out that I have been using SSH keys and not the SSH server. I have been using the keys to push my code to my hosted repos.

So now my questions are(I am using windows 10):

  1. Can I set up an SSH config file without a tool like openSSH, if so how do I do it?
  2. Where in my computer is this config file stored?
4

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):

  1. Go to the .ssh directory /c/Users/PC_USER_NAME/.ssh/, click right mouse button and choose "Git Bash Here"
  2. Create a file named "config" with the following command:
touch config
  1. Now open the config file with the command:
nano config
  1. 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
2

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>
4
David Miller

David Miller

Executive Financial & Market Analyst

David Miller brings 15 years of experience in global economics, personal finance strategy, and market dynamics. He specializes in turning complex economic trends into actionable insights for everyday readers.

Share this article
Twitter Facebook Pinterest