Этот ответ основан на принятом, но добавляет детали, которые позволили мне сделать это. Я прошу прощения за объяснение пешехода, так как это совсем не моя экспертиза.
Предположим, у вас есть два компьютера, A
и B
. Вы хотите перейти ssh
от A
к B
, и вы не можете выполнять переадресацию портов в подключенных к ним маршрутизаторах.
Как говорится в принятом ответе, для этого вам нужен сервер S
: на компьютере B
вы будете разрешать ssh
исходящие соединения S
; и с компьютера A
, вы получите доступ к этому туннелю, S
чтобы достичь B
.
Но как вы получаете этот сервер S
? Я нашел serveo
(ссылка: https://serveo.net/ ). Это очень простое использование. Вам не нужно ничего устанавливать или регистрироваться, и это бесплатно. Согласно веб-сайту, следующие шаги:
Подумайте о псевдониме для компьютера B
. Например, computer_B_alias
.
В компьютере B
выполните ssh -R computer_B_alias:22:localhost:22 serveo.net
.
Теперь вы можете получить доступ к компьютеру B
с компьютера A
, выполнив следующие действия на компьютере A
:, ssh -J serveo.net user@computer_B_alias
где вы должны заменить user
имя пользователя на компьютере B
.
PS: Конечно, вы делаете пункт 2 автоматической задачей при запуске компьютера B
.
PSS: прежде чем попробовать это, убедитесь, что ssh
установлено на обоих компьютерах. Для Ubuntu, sudo apt-get install ssh
сделал бы работу.