Этот ответ основан на принятом, но добавляет детали, которые позволили мне сделать это. Я прошу прощения за объяснение пешехода, так как это совсем не моя экспертиза.
Предположим, у вас есть два компьютера, 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
сделает эту работу.