В примере, как это:

Host destination
  ProxyCommand ssh gateway nc %h %p

Зашифровано ли соединение между шлюзом и пунктом назначения? Я смущен, потому что у меня есть 2 гипотезы, и обе не убедительны:

  1. Это не зашифровано. Stdin в исходном коде проходит через ssh-соединение исходного шлюза и зашифровывается перед передачей в nc, т. Е. Stdin для nc такой же, как stdin в ssh-клиенте в источнике. Но я думаю, что% p равен 22, порт ssh - что не соответствует этой гипотезе.
  2. Он зашифрован, демон sshd на шлюзе передает nc зашифрованные данные. Затем скажите, что вместо выполнения nc мы выполняем команду "cat", sshd-демон тоже передает ей зашифрованные данные? Это тоже не звучит правильно.

1 ответ1

2

Конечно это зашифровано! Просто чтобы хорошо понять, что здесь происходит:

[ client $ ssh destination ]
  |
  '-> [ gateway $ nc destination 22 ]
        |
        '-> [ destination $ whatever]

На клиенте вы запускаете только ssh destination . Это переводится в ssh gateway nc destination 22 .

Итак, первая выполняемая команда - это ssh gateway с командой. Мы зашифровали первый шаг наверняка.

Команда nc destination 22 выполняется в этом сеансе на сервере gateway . И это в основном делает то, что он перенаправляет все операции ввода-вывода на хост destination , как есть (но мы уже в зашифрованном канале!).

Таким образом, вы сделаете еще один обмен ключами и аутентификацию с destination и после того, как это произойдет, вы, вероятно, получите приглашение оболочки. Так что это снова зашифровано.

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