Как добавить несколько машин с одинаковой конфигурацией в ~/.ssh/config?
Скажи мой ~/.ssh/config
имеет некоторую строку:
Host machine1
User user
HostName machine1
ProxyCommand ssh server nc %h %p 2> /dev/null
и это работает правильно, но проблема в том, что у меня много machines
: machine1, machine2, machine3, ...
так как я могу установить все из них, не копируя вручную такие же строки
3 ответа
Вы можете сделать это следующим образом:
Host machine1 machine2 machine3
User user
ProxyCommand ssh server nc %h %p 2>/dev/null
Вам просто нужно перечислить хостов в Host
строка, разделенная пробелами, и вы можете опустить HostName
если это не отличается от имени, которое вы дали в Host
линия. См. Несколько похожих записей в конфигурации ssh · U & L.
Чтобы упростить его еще больше, есть подстановочные знаки *
а также ?
доступны с их обычным значением, так Host machine?
было бы возможно для вашего примера.
Если ваши имена хостов соответствуют шаблону, вы можете использовать шаблоны SSH:
Вы можете использовать шаблоны в ~/.ssh/config
, От 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.?
Итак, если вы хотите прокси все в *.example.com
тогда в вашем ~/.ssh/config
, положил:
Host *.example.com
User user
ProxyCommand ssh server nc %h %p 2> /dev/null
Или, используя ssh
Собственные опции, вы можете избежать netcat:
Host *.example.com
User user
ProxyCommand ssh -qW %h:%p server
От 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
да, имя хоста избыточно.