Esta resposta é baseada na aceita, mas adicionando os detalhes que me permitiram fazê-lo. Peço desculpas pela explicação dos pedestres, pois essa não é minha especialidade.
Suponha que você tenha dois computadores A
e B
. Você deseja ssh
de A
para B
e não pode encaminhar nenhuma porta nos roteadores conectados a eles.
Como afirma a resposta aceita, você precisa de um servidor S
para fazer isso: no computador B
, você permitirá ssh
conexões provenientes S
; e do computador A
, você acessará esse túnel em S
para alcançar B
.
Mas como você obtém esse servidor S
? Encontrei serveo
(link: https://serveo.net/ ). É de uso muito simples. Você não precisa instalar nada ou se registrar e é gratuito. De acordo com o site, as etapas a seguir são:
Pense em um apelido para o computador B
. Por exemplo computer_B_alias
,.
No computador B
, execute ssh -R computer_B_alias:22:localhost:22 serveo.net
.
Agora, você pode acessar o computador a B
partir do computador A
executando o seguinte em computer A
:, ssh -J serveo.net user@computer_B_alias
onde você deve substituir user
pelo nome do usuário no computador B
.
PS: Obviamente, você faz do ponto 2 uma tarefa automática ao iniciar o computador B
.
PSS: Antes de tentar isso, verifique se ssh
está instalado nos dois computadores. Para o Ubuntu, sudo apt-get install ssh
faria o trabalho.