Я пытаюсь подключиться к удаленному хосту 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 обо всем позаботится за вас.