How to configure ssh to automatically connect to
non standard ssh port numbers (!port 22)
Today I've learned from a admin colleague, a handy tip.
I'm administrating some Linux servers which are configured on
purpose not to run on the default ssh port number (22) and
therefore each time I connect to a host I have to invoke the
ssh command with
-p PORT_NUMBER option.
This is not such a problem, however when one has to administrate a
dozen of servers each of which is configured to listen for ssh
connections on various port numbers, every now and then I had to
check in my notes which was the correct ssh port number I'm
supposed to connect to.
To get around this silly annoyance the
ssh client has a feature,
whether a number of ssh server hosts can be preconfigured from the
~/.ssh/config in order to later automatically recognize the port
number to which the corresponding host will be connecting
(whenever) using the ssh user@somehost without any -p argument
specified.
In order to make the "auto detection" of the ssh port number, the
~/.ssh/config file should look something similar to:
hipo@noah:~$ cat ~/.ssh/config
Host home.*.pc-freak.net
User root
Port 2020
Host www.remotesystemadministration.com
User root
Port 1212
Host sub.pc-freak.net
User root
Port 2222
Host www.example-server-host.com
User root
Port 1234
The *.pc-freak.net specifies that all ssh-able subdomains belonging
to my domain pc-freak.net should be by default sshed to port
2020
Now I can simply use:
ssh root@myhosts.com
And I can connect without bothering to remember port numbers or dig
into an old notes.
Hope this ssh tip is helpful.