Eu tenho um laptop Mac (computador A) executando o OS X el capitan que gostaria de acessar remotamente com o SSH. Como o computador está sempre na rede da minha escola, não consigo obter um endereço IP público estático. Depois de fazer pesquisas, aprendi que posso
- defina o mac os x para solicitar um determinado IP privado na rede da minha escola
- use ddclient para sempre atualizar o IP público que meu computador tem para nsupdate.info de tal forma que um URL estático sempre aponte para o computador A
Como mencionado anteriormente, o computador A está na rede da minha escola. Como posso usar meu computador (computador B) na minha rede doméstica, que é longe da minha escola, para ssh no computador A?
Digamos que eu configurei o computador A para configurar o IPv4 usando DHCP com endereço IP manual 172.27.133.200 e para usar o ddclient para atualizar o testurl.nsupdate.info para sempre apontar para o endereço IP público do computador A. Existe um comando que usaria esses dados? dois endereços que eu posso conectar, por exemplo (conceitualmente)
userOnComputerB$ ssh [email protected]@testurl.nsupdate.info
Saúdo também outras soluções que funcionam dentro dos limites do problema. Eu consultei outro perguntas envolvendo tunelamento reverso e encaminhamento de porta , mas não vejo como eles se aplicam a isso, porque acho que não tenho controle sobre o encaminhamento de porta dos roteadores da rede da minha escola.
Por fim, se um comando como o acima não for possível, qual é a razão técnica ou de design ssh do porquê de tal comando não ser possível?
fonte
Respostas:
Quando você SSH para testurl.nsupdate.info a conexão será encerrada no firewall da sua escola (ou outro dispositivo que implementa NAT para o seu IP interno 172.27.133.200). O firewall não saberá que isso precisa ser encaminhado ao seu IP interno, a menos que o administrador do firewall tenha configurado o encaminhamento de porta, mas, como você diz, você não tem controle sobre isso.
Se você pensar sobre isso, a razão de existência do firewall é exatamente para impedir que alguém de fora possa se conectar a um dispositivo interno (exceto as conexões aprovadas pelo administrador do firewall).
No entanto, normalmente o firewall faz permitir que o seu dispositivo interno para SSH para o exterior, então você poderia usar essa conexão SSH de saída para encapsular uma conexão de entrada, o que é explicado em perguntas envolvendo tunelamento reverso que você mencionou. Basta ler isso, tendo em mente que "lappy" é o computador da sua escola e "remotamente" o seu computador doméstico.
fonte
lappy
eremotey
estão na mesma rede eremotey
é usado como um ponto intermediário entrelappy
e outro computador (ao qual o OP se refere como computador C). Isso significa que é necessário usar 3 computadores, ondelappy
eremotey
estão na mesma rede e o computador C está na minha rede doméstica?remotey
então use a porta do túnel reverso. Gostaria que os dados fossem criptografados ponto-a-ponto entre o computador doméstico elappy
. Seria esse o caso se eu me conectasseremotey
como intermediário? Existe um único comando que eu poderia usar para mesclar essas duas etapas?test out reverse tunnel port [user@remotey ~]$ ssh -p 12345 localhost should now be back on lappy user@localhost's password: Last login: Thu Aug 1 17:53:54 2013 /usr/bin/xauth: creating new authority file /home/user/.Xauthority [user@lappy ~]$
lappy
eremotey
estão na mesma rede. No meu caso, nem o computador da escola nem o computador da minha casa têm IPs públicos estáticos. Isso significa que o computador intermediário é necessário? Posso usar um login para criptografia de ponta a ponta?