DEV Community

Jim Zandueta
Jim Zandueta

Posted on • Edited on

How to connect to the same host with different SSH keys?

Required Reading:

Optional Reading:

  • None

-

Setup your SSH configuration file

When connecting to a remote server via SSH, we would use the command line to specify the remote user name, hostname, and port, as shown below:

$ ssh tony@avengers.com -p 4321
Enter fullscreen mode Exit fullscreen mode

We can connect to the server using the same options as in the previous command by typing ssh avengers after adding the following lines to your ~/.ssh/config:

Host avengers
    HostName avengers.com
    User tony
    Port 4321
Enter fullscreen mode Exit fullscreen mode

We can also specify which SSH key to use when connecting to a specific server in the configuration file by setting IdentityFile:

Host avengers
    HostName avengers.com
    User tony
    Port 4321
    IdentityFile ~/.ssh/id_rsa_avengers

Host marvel
    HostName marvel.com
    User tony
    Port 8080
    IdentityFile ~/.ssh/id_rsa_marvel
Enter fullscreen mode Exit fullscreen mode

The use of IdentityFile is especially useful when connecting to the same hostname with different SSH keys. A real-world example would be having multiple Github accounts, such as personal and work:

Host github_personal
    HostName github.com
    IdentityFile ~/.ssh/github_personal

Host github_work
    HostName github.com
    IdentityFile ~/.ssh/github_work

IdentityFile ~/.ssh/id_rsa 
#default ssh key to use for all other hosts
Enter fullscreen mode Exit fullscreen mode

Using the configuration file above, we can clone repositories from your personal Github account with:

$ git clone git@github_personal:tonystark/ultron.git
Enter fullscreen mode Exit fullscreen mode

Notice that instead of @github.com as the host name, we use @github_personal as defined in the configuration file.

-

Updating the configuration file:

  • Open your favorite terminal
  • Create/Open the SSH configuration file
$ nano ~/.ssh/config
Enter fullscreen mode Exit fullscreen mode

-

Resources

Top comments (2)

Collapse
 
ccoveille profile image
Christophe Colombier

I found one typo

ssh ... -p 1234

Then

Port 4321

As you are repeating Port 4321, you should fix ssh -p 4321

Collapse
 
jimzandueta profile image
Jim Zandueta

Thanks for the catch! 😄