I have two public keys, one for some servers and one for others. How do I specify which key to use when connecting to a server?
2 Answers
Assuming you're on a Unix/Linux environment, you can create or edit the file ~/.ssh/config
.
That config file allows you to establish the parameters to use for each host; so, for example:
Host host1
HostName <hostname_or_ip>
IdentityFile ~/.ssh/identity_file1
Host Host2
HostName <hostname_or_ip2>
User differentusername
IdentityFile ~/.ssh/identity_file2
Note that host1 and host2 can also be not hostnames, but rather labels to identify a server.
Now you can log onto the to hosts with:
ssh host1
ssh host2
-
57You can also use
-i <keyfile>
, but I'd definitely recommend the config file method in the general case.– womble ♦Jul 30, 2011 at 8:43 -
I tried this but I keep getting prompted of the passphrase for my key. Even when I enter the passphrase correctly, the ssh login doesn't work. I tried using a blank passphrase too Feb 29, 2016 at 20:27
-
I had to do
ssh differentusername@host2
for a proper login, but otherwise this worked wonderfully, thank you!– agrippaJun 21, 2019 at 21:57
On Fedora 27, you can put the private/public keys under ~/.ssh/ and then when you ssh to a host, both of them will be tried automatically.