В том, что мы могли бы назвать каноническим примером ssh с несколькими прыжками, мы видим, что следующая команда будет маршрутизировать ssh-трафик пользователя через три (фиктивных) последовательных узла:

ssh ruapehu.example.com ssh aoraki ssh Тонгариро

с именем ruapehu.example.com , aoraki и tongariro . Пример упрощает настройку с помощью прокси-команд. Недостатком схемы является то, что первые два узла могут считывать трафик, хотя было бы лучше, если бы они не могли этого сделать. Если нам удастся ввести в цепочку команды [encrypt] и [decrypt], мы можем фактически приблизиться к тому, что делает сеть tor. Другая проблема заключается в том, как внедрить переадресацию портов в цепочке с несколькими переходами? Следующее, очевидно, не будет работать, но это в значительной степени то, что я хотел бы сделать:

[зашифровать] ssh ruapehu.example.com ssh aoraki ssh Тонгариро [расшифровать] -L 80:somesite.com:80

Кто-нибудь сможет заставить что-то подобное работать?

2 ответа2

1

Вы задали два вопроса:

  1. Как мы можем гарантировать, что трафик через промежуточные узлы не будет «перехвачен»?

Ответ в том, что вам не нужно ничего делать. КАЖДОЕ соединение SSH зашифровано. Трафик, "увиденный" ruapehu и aoraki , не ясен. Вам не нужно добавлять дополнительный уровень шифрования.

  1. Как вы можете включить переадресацию портов через пункт назначения?

Самый простой ответ - использовать файл ~/.ssh/config и добавить директиву только для места назначения, как в (заимствование из вашей собственной ссылки, добавление только последней строки):

Host ruapehu
  HostName ruapehu.example.com

Host aoraki
  ProxyCommand ssh -q ruapehu nc -q0 aoraki 22

Host tongariro
  LocalForward 80:somesite.com:80
  ProxyCommand ssh -q aoraki nc -q0 %h 22

То есть, если вы можете открыть порт 80 на локальном хосте, в противном случае вам, возможно, придется использовать непривилегированный порт, который превышает 1024 (в зависимости от вашего хоста и конфигурации).

0

Если вы за один шаг создадите перенаправленный порт со своего компьютера на целевой компьютер, а затем создадите SSH-соединение через этот перенаправленный порт, вы получите в основном то, что описали в своем последнем примере.

  1. Создайте переадресацию портов:

    # jump from aoraki -> tongariro
    ssh ruapehu.example.com "ssh -L 2222:tongariro:22 aoraki" 
    # jump from ruapehu.example.com -> aoraki
    ssh -L ruapehu.example.com:2222:aoraki:2222 ruapehu.example.com
    

    Это предполагает, что вы настроили свой сервер с соответствующими GatewayPorts , так что вы сможете связать порт 2222 извне.

  2. Инициируйте новое ssh соединение с целевым сервером:

    ssh -p 2222 ruapehu.example.com
    

    Это соединение будет зашифровано на всех промежуточных этапах, и вы также можете настроить переадресацию другого порта через него.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .