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