M BUZZ CRAZE NEWS
// news

How do I add multiple machines with the same configuration to ~/.ssh/config?

By Mia Morrison

say, my ~/.ssh/config has some line:

Host machine1 User user HostName machine1 ProxyCommand ssh server nc %h %p 2> /dev/null

and this works properly, but the problem is that I have lot of machines: machine1, machine2, machine3, ... so how can I set all of them without manually copy same kind of lines

2

3 Answers

You can do that this way:

Host machine1 machine2 machine3 User user ProxyCommand ssh server nc %h %p 2>/dev/null

You just need to list the hosts in the Host line, separated by whitespace, and you can omit HostName if it's not different from the name you gave in the Host line. See Multiple similar entries in ssh config · U&L.

To simplify it even more there are the wildcards * and ? available with their usual meaning, so Host machine? would be evenly possible for your example.

10

If your hostnames fit a pattern, you can use SSH's patterns:

You can use patterns in ~/.ssh/config. From man ssh_config:

PATTERNS 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 declarations for any host in the “.co.uk” set of domains, the following pattern 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.?

So, if you want to proxy everything in *.example.com, then in your ~/.ssh/config, put:

Host *.example.com User user ProxyCommand ssh server nc %h %p 2> /dev/null

Or, using ssh's own options, you can avoid netcat:

Host *.example.com User user ProxyCommand ssh -qW %h:%p server

From man ssh:

-W host:port Requests that standard input and output on the client be forwarded to host on port over the secure channel. Implies -N, -T, ExitOnForwardFailure and ClearAllForwardings.
Host machine* User user ProxyCommand ssh server nc %h %p 2> /dev/null

yes, the Hostname is redundant.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

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