iniciar conexão ssh do servidor para o cliente

10

Podemos facilmente conectar via sshpara a máquina remota que tem IP público.

Mas agora eu tenho uma máquina remota sem IP público e preciso me conectar a ela na minha máquina que possui IP público. Para que a máquina remota inicie essa conexão (adicione um cliente).

Preciso disso porque meu avô está no computador sem IP público e ele precisa de ajuda com seu sistema algumas vezes.

Em situação semelhante no Windows, usei a conexão VNC (por TightVNC), o servidor TightVNC tem a opção "Adicionar um cliente": o usuário acabou de inserir o IP do cliente (ou seja, meu IP público), meu cliente já está no "modo de escuta" e quando "servidor" adiciona um cliente, a conexão é inicializada.

Então, é possível executar o mesmo truque com a conexão SSH?

Dmitry Frank
fonte

Respostas:

12

Por definição, o cliente é quem inicia a conexão.

Para o seu problema, acho que uma solução simples seria construir um túnel reverso.

No computador sem IP público:

ssh -R 2222:localhost:22 loginOfServerWithPublicIP@publicIP

Isso se conecta ao servidor pelo SSH e cria um túnel do servidor com IP público na porta 2222 para o computador sem IP público na porta 22 (SSH).

E então no servidor:

ssh -p 2222 loginOfComputerWithoutPublicIP@locahost

A conexão é redirecionada da porta 2222 do servidor para a porta 22 do computador pelo primeiro túnel. Você pode querer usar uma ferramenta como autosshpara tornar o túnel mais resiliente (por exemplo, reinicie-o automaticamente quando for desligado).

lgeorget
fonte
Obrigado, muito útil e conciso. Veja as respostas a esta pergunta para obter mais detalhes e outras opções úteis.
AstroFloyd