32

When connecting via SSH my terminal wants to use id_rsa by default. I don't want to use that key for this particular server. So I am forced to specify the proper key path when connecting:

This works to connect: ssh -i /Users/myuser/.ssh/mykey serveruser@server.com

But I would prefer to use the following to connect: ssh user@server.com

My Question: Is there a way to indicate in known_hosts or other config that SSH should use the key located at /Users/myuser/.ssh/mykey when serveruser is connecting to server.com?

Thanks!

1
  • Have you considered using a function or script to replace ssh? It is then a straightforward task to scan the parameters and add the extra parameter to use the other key when connecting to server.com.
    – AFH
    Dec 12, 2017 at 17:06

2 Answers 2

44

One option you could consider would be to user the .ssh/config file.

Example: .ssh/config

Host server.com
    HostName server.com
    User serveruser
    IdentityFile /Users/myuser/.ssh/mykey

By doing this you could execute "ssh server.com". The config file would use the specified Username and Identity File.

2
  • Addition: You can use ~/.ssh/mykey for a local key file, also on Windows.
    – Lii
    May 26, 2019 at 11:33
  • Note that if you don't have the config file in your .ssh folder you must create it first and note that the User line is optional Jun 30, 2020 at 20:17
3

An additional option would be to use ssh-agent.

If you add all of your identities to it

ssh-add .ssh/id_rsa
ssh-add .ssh/mykey

When you connect to the remote host, the one that works is the one that is used.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.