Vou implantar várias máquinas em um futuro próximo, que estarão atrás de roteadores. Não será viável configurar o DNS dinâmico em cada roteador e encaminhamento de porta; portanto, existe uma maneira de configurar essas máquinas para iniciar uma conexão TCP com o meu computador e depois fazer com que o meu computador inicie uma conexão SSH com o computador remoto. essa conexão?
IE:
COMPUTER A OPENS TCP CONNECTION TO COMPUTER B
COMPUTER B OPENS SSH CONNECTION OVER THE EXISTING TCP CONNECTION TO COMPUTER A
COMPUTER B NOW HAS SSH CONNECTION TO COMPUTER A
Isso é possível? Em caso afirmativo, como posso fazer isso?
Respostas:
Em
/etc/ssh/sshd
para computador B set:Do Computador A :
Do computador B :
Observe que 2222 é um número arbitrário de porta alta que eu escolhi. Essa porta no Computador B será encapsulada de volta através da conexão SSH inicializada no Computador A para a porta 22. Se você tiver várias máquinas, deverá usar uma porta diferente para cada máquina.
Para o seu caso de uso, você provavelmente desejará executá-lo a partir de um script para torná-lo um daemon e periodicamente tentar se reconectar se o link for descartado. Você provavelmente desejará uma conta especial com um shell apenas
/bin/true
no Computador B para lidar com as conexões de entrada. Você pode configurar uma única chave ou várias chaves para cada máquina que pode "ligar para casa".No Computador A que você pode encontrar o
-n
,-N
e-T
opções úteis para desconectá-lo da entrada local (para que ele possa ser executado em segundo plano), não tente executar qualquer comando remoto, basta abrir o túnel, e não criar um tty.A maioria dos métodos normais de gerar um daemon não funciona muito bem com a configuração de um túnel de rede como este. Um problema na conectividade de rede faria com que tentasse derrubar o muro para superar. Um loop simples com um sono para aguardar deve fazer o truque. Dez minutos é um bom número, porque não inunda a rede e os arquivos de log com tentativas, se houver um problema (como o Computador B estar offline), mas ainda assim você voltará razoavelmente rápido se a conexão cair.
Um script como esse pode ser executado iniciado na inicialização
/etc/rc.local
. Sua primeira alteração no logon na máquina começará cerca de dez minutos após a inicialização do Computador A.fonte
/etc/ssh/sshd_config