SSH Config Aliases
If your like me and you deal with a lot of servers for development or test and do it from a Unix machine, I’ve got a really handy tip: SSH hostname pattern matching.
Say I’ve got a SSH config file like this (at ~/.ssh/config
):
host s*
HostName atrcu%h.example.com
User example1
Port 22
host b*
HostName atrcx%h.example.com
User example2
Port 22
host ??*
HostName atvts%h.example.com
User example5
Port 2205
The ssh man page explains this really well:
A pattern consists of zero or more non-whitespace characters, ‘*’ (a
wildcard that matches zero or more characters), or '?' (a wildcard that
matches exactly one character). For example, to specify a set of decla-
rations for any host in the .co.uk set of domains, the following pat-
tern could be used:
Host *.co.uk
The following pattern would match any host in the 192.168.0.[0-9] network
range:
Host 192.168.0.?
A pattern-list is a comma-separated list of patterns. Patterns within
pattern-lists may be negated by preceding them with an exclamation mark
('!'). For example, to allow a key to be used from anywhere within an
organisation except from the ``dialup'' pool, the following entry (in
authorized_keys) could be used:
from="!*.dialup.example.com,*.example.com"
So there you have it!