У меня есть машины A
, B
которые могут получить доступ к Relay
машине через ssh, но не наоборот. Могу ли я получить доступ к машине B
через A
машину Relay
, не открывая порты, за исключением 22
того, что этот порт единственный доступный?
Например, возможным решением было бы ssh
из B
в Relay
и открытие файлов для чтения stdin
и записи stdout
. Подключение из A
к relay
позволяет читать и записывать в эти файлы для связи с B
.
Есть ли способ сделать это с помощью инструментов командной строки?
решение1
Ну, очевидно, что на реле уже открыт порт, иначе ssh был бы невозможен.
Единственный способ, который я вижу, — это чтобы B подключился к реле по ssh и вместе с этим открыл обратный туннель, который затем может использовать A. Вам нужна опция «-R».
решение2
Вот один из способов:
- ssh A для ретрансляции и переадресации локального порта (например,
ssh -L 6022:127.0.0.1:6022
). Эта команда переадресует локальный порт 6022 на A на порт 6022 на ретрансляции через SSH. - ssh B для ретрансляции и переадресации удаленного порта на локальный (
ssh -R 6022:127.0.0.1:22
) Эта команда переадресует удаленный порт 6022 на ретрансляторе на локальный порт 22 на B - Теперь на компьютере A подключитесь к порту 6022 локального хоста с помощью SSH и сможете войти в B.