Using Different Ssh Config Options Based on Port
I Have a Situation Where I Have to Use Different Login Credentials on the Same Ip Address Based on the Port the I Use. So and Example on the Command Line Would...
I have a situation where I have to use different login credentials on the same IP address based on the port the I use.
So and example on the command line would look like this:
ssh user1@192.168.1.2:22
and
ssh user2@192.168.1.2:2222
I have setup the following in my ~/.ssh/config file:
Host "192.168.1.*"
user user1
IdentityFile ~/.ssh/id_user1
PubkeyAuthentication yes
which works great for the user1 at port 22 scenario but is there a way to setup an alternate user and IdetityFile for user2 at port 2222?
2 Answers
I guess I should have kept searching....
SSH config host match port over on superuser.com had the answer I needed!
Basically instead of:
Host "192.168.1.*"
I'm now using:
Match host "192.168.1.*" exec "test %p = 22"
and
Match host "192.168.1.*" exec "test %p = 2222"
I didn't try it out, but I think the HostName option (see man ssh_config could provide you a solution:
Host "host22"
Hostname "192.168.1.2"
Port 22
user user1
IdentityFile ~/.ssh/id_user1
PubkeyAuthentication yes
Host "host2222"
Hostname "192.168.1.2"
Port 2222
user user2
IdentityFile ~/.ssh/id_user2
PubkeyAuthentication yes
With this you should be able to do:
ssh user1@host22
ssh user2@host2222
or even
ssh host22
ssh host2222
as the user name and the port are given in the config file.