
Я хочу подключиться к группе машин, используя определенную машину, используя туннелирование ssh. Но во всех найденных решениях мне нужно указать запись для каждой машины в моем файле конфигурации ssh. Я хотел бы использовать подстановочный знак таким образом:
Host *.mydomain.com
// some magic here
На данный момент наилучшим решением было:
решение1
Если вы можете запускать такие программы, как или nc
на вашем туннельном сервере, вы можете использовать вместо переадресации портов:netcat
socat
ProxyCommand
# Only necessary if it matches the *.mydomain.com wildcard. Useless otherwise.
Host tunnelbox.mydomain.com
ProxyCommand none
Host *.mydomain.com
ProxyCommand ssh tunnelbox.mydomain.com nc %h %p
#ProxyCommand ssh tunnelbox.mydomain.com ncat %h %p
#ProxyCommand ssh tunnelbox.mydomain.com socat stdio tcp:%h:%p
#ProxyCommand ssh tunnelbox.mydomain.com netcat %h %p
Раскомментируйте соответствующую команду ProxyCommand в зависимости от того, какие инструменты установлены на туннельном сервере.
Обратите внимание, что это приведет к установке и отключению отдельного SSH-подключения для каждого установленного туннеля, что означает, что подключение будет медленнее, чем через SOCKS. (Это не повлияет на производительность.)после(Связь, однако.)
Если ваша версия SSH поддерживает это, вы можете включить мультиплексирование соединений:
Host tunnelbox.mydomain.com
ControlMaster no
ControlPath none
Host *.mydomain.com
ControlMaster auto
ControlPath ~/.ssh/S.%l.%r@%h:%p
ControlPersist 10m