Eu tenho PC1 e PC2, ambos no Ubuntu, com servidores SSH ativos e atrás do mesmo roteador. Vou usar diferentes prompts do bash por uma questão de clareza. Eu posso ssh de PC1 para PC2 usando o IP local.
[user@PC1]$ ssh [email protected]
/user@PC2/$ logout
Connection to PC2 closed.
[user@PC1]$ ssh [email protected]
/user@PC2/$ logout
Connection to PC2 closed.
[user@PC1]$ dig +short myip.opendns.com @resolver1.opendns.com
<External IP>
[user@PC1]$ ssh [email protected]
/user@PC2/$ dig +short myip.opendns.com @resolver1.opendns.com
<External IP>
Como posso ssh usando o IP externo (que é o mesmo para ambos?
[user@PC1]$ ssh user@<External IP> ... etc?
O procedimento seria diferente do que eu faria se o PC1 e o PC2 estivessem atrás de roteadores diferentes?
Observe que eu pretendia aprender como fazer isso agora que tenho os dois PCs à mão e preparar o PC2 para futuras ocasiões quando estiver fora.
você não pode; você tem um IP externo, como você disse, e nele você tem uma porta 22. Seu roteador não pode saber qual dos seus PCs você quer dizer.
Duas coisas que você pode fazer:
-J
opção emman ssh
); então você podessh -J externalIP [email protected]
.sim, porque estes teriam IPs públicos diferentes.
Graças aos comentários recebidos e pesquisas adicionais com essas diretrizes, cheguei às seguintes conclusões:
Como posso ssh usando o IP externo (que é o mesmo para ambos)?
Isso envolve várias etapas, algumas obrigatórias, outras convenientes.
Obrigatório . Configure o encaminhamento de porta no roteador. Adicione um serviço para encaminhamento de porta com os seguintes parâmetros (isso varia entre os roteadores):
ssh
comando no PC (o cliente). Até agora, só consegui usar o mesmo valor para ambos, por exemplo, 23.192.168.0.30
.Obrigatório . Conecte-se através de um dos
Opcional . Configure um DNS dinâmico, para que não seja necessário conhecer o
<External IP>
.Opcional . Defina um IP fixo para PC2, para que o serviço de encaminhamento de porta nunca perca o destino.
Notas:
Pode-se definir, como de costume, uma porta interna diferente , por exemplo, 5901, no PC2. Verifique
/etc/ssh/sshd_config
,ufw
, etc. Medidas de segurança aumentadas podem ser consideradas./etc/ssh/sshd_config
com linhaPort 5901
em vez do padrão comentado#Port 5901
.$ sudo ufw allow 5901/tcp
.$ sudo service ssh restart
.Pode-se provavelmente ssh para mais de um PC atrás do mesmo roteador, configurando os serviços de encaminhamento de porta correspondentes .
O procedimento seria diferente do que eu faria se o PC1 e o PC2 estivessem atrás de roteadores diferentes?
Eu não tentei isso ainda, mas eu suspeito que é exatamente o mesmo. Ao usar
[user@PC1]$ ssh user@<External IP> -p 23
, acho que meu roteador não sabe (ou se importa) que estou ssh'ing de um PC1 que está realmente conectado à Internet por si mesmo.