Допустим у нас имеется некая машина в локальной сети (например внутренний сервер), в шелл которой мы хотим попасть через интернет. Допустим также, что через интернет можно зайти (по SSH) только на другую машину в этой же сети (например на роутер, выпускающий из локалки в интернет). Задача: сделать это максимально просто, без прокидывания портов на роутере и т.п. Естественно, задача решаема, только если доступ по SSH есть и на роутер и на целевую машину =).
# Роутер, доступный через интернет. # Если для подключения используются настройки по умолчанию - ничего прописывать не нужно. Host external-server.example.org Port 12345 User superadmin # Целевая машина. # В качестве имени можно указать что угодно - оно не будет использоваться для определения IP-адреса. # Умолчальные настройки указывать не нужно, главное - ProxyCommand. Host internal.frominet Port 54321 User superadmin # 192.168.1.2 - IP целевой машины в локальной сети. Можно указать имя хоста, если настроен локальный DNS-сервер. ProxyCommand ssh external-server.example.org 'netcat 192.168.1.2 %p'
$ ssh internal.frominet