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 Ae B. Você deseja sshde Apara Be não pode encaminhar nenhuma porta nos roteadores conectados a eles.
Como afirma a resposta aceita, você precisa de um servidor Spara fazer isso: no computador B, você permitirá sshconexões provenientes S; e do computador A, você acessará esse túnel em Spara 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 Bpartir do computador Aexecutando o seguinte em computer A:, ssh -J serveo.net user@computer_B_aliasonde você deve substituir userpelo 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 sshestá instalado nos dois computadores. Para o Ubuntu, sudo apt-get install sshfaria o trabalho.