Назад | Перейти на главную страницу

SSH на удаленный хост через другой хост

Я пытаюсь подключиться к удаленному хосту B по ssh, но все зависит от контроля доступа к сети. Я могу сделать это только через хост A. Как я могу это сделать?

Пробовали создать туннель для хоста A ssh -f -N -D 2222 user @ hostA

Затем при создании новых ssh-подключений из Local, указав порт туннеля для туннелирования этих подключений, но не могу заставить это работать .. ssh -L 2222: hostB: 22 hostA

Участвующие хосты: локальный хост A (локальная интрасеть) хост B (интернет)

Поток трафика: Local> HostA> HostB

Любые указатели были бы супер рукой .. заранее спасибо!

Ваша мысль об использовании динамического переадресации портов для этого никогда не сработает. Подумайте об этом логически - вам нужно открыть локальный порт, который перенаправляет с вашего локального компьютера через hostA на порт 22 на hostB. Есть несколько способов добиться этого. Во-первых, неэлегантный ручной способ:

Сначала настройте туннель:

$ ssh -L2222:hostB:22 user@hostA

Затем подключитесь к hostB:

$ ssh -p 2222 user@localhost

Предпочтительный вариант - использовать клиент ssh ProxyCommand директива, которая может автоматизировать это за вас. Добавьте что-то подобное в свой ~/.ssh/config:

host hostB
  Hostname hostB
  ProxyCommand ssh user@hostA nc %h %p 2> /dev/null

После этого вы можете сделать следующее:

$ ssh hostB

... и клиент ssh обо всем позаботится за вас.