SSH два компьютера за брандмауэрами через внешний сервер

У меня есть два компьютера в университете. Оба они находятся за каким-то брандмауэром и т.д., Который запрещает мне напрямую подключать их по сети. Они могут использовать SSH общедоступные компьютеры, но я не могу понять, как ssh от одного к другому. Я также запускаю небольшой веб-сайт. Мой вопрос: могу ли я использовать общедоступный адрес моего веб-сайта, чтобы каким-то образом подключить мои два компьютера без всякой информации, текущей через мой сайт, и есть всю мою пропускную способность? В идеале я хотел бы создать туннель ssh между двумя моими компьютерами.

Я уже пробовал Hamachi, он больше не играет с маками, и мне нужно больше контролировать соединение.

Ответы

Ответ 1

Предположим, вы хотите ssh от MachineA до MachineB (оба в университете), пройдя через свой ServerC (ваш общий сервер).

Вам нужно будет запустить sshd на ServerC и на MachineB.

Выполните следующие команды, предполагая, что ваш sshd прослушивает порт 22 на MachineB и ServerC:

# Forward incoming connections from ServerC:22000 to MachineB:22
(on MachineB) ssh -R22000:127.0.0.1:22 -N [email protected]
# Forward incoming connections from 127.0.0.1:22000 to ServerC:22000
(on MachineA) ssh -L22000:127.0.0.1:22000 -N [email protected]
# Establish the link between MachineA and MachineB
(on MachineA) ssh -p 22000 [email protected]

Этот метод нужен только для доступа к порту 22, и вы можете легко изменить его на 80 или 443, если ваш университетский прокси злобный.