Como @ Findus23 diz, você tem que encaminhar uma porta (diferente do 22, que é talvez usado como porta padrão para se conectar ao próprio roteador SSH) do roteador para o seu PC.
Eu faço um exemplo:
PC [192.168.1.10] <==> [192.168.1.1] Router [1.1.1.1] <==> Internet
Como você pode ver, conectar-se por SSH ao endereço 1.1.1.1
resulta na conexão com a porta 22 do roteador em sua interface pública (voltada para a Internet).
Se você quiser acessar um PC localizado atrás do roteador (então, na rede privada do espaço de endereçamento 192.168.1.0/24
) você precisa habilitar Port Forwarding . < br>
Isso é obrigatório porque o seu roteador deve saber qual host ele precisa contatar do espaço de endereço completo dos PCs conectados a ele. Por exemplo:
(PC1[192.168.1.2], PC2[192.168.1.3]) <==> Router
O roteador não pode saber se precisa rotear para PC1
ou PC2
quando contatado para uma porta especificada.
Ativando Port Forwarding
, você pode dizer:
All connections from Internet to port X of the router, must be routed to port Y of PCZ
Então, no seu caso:
Router:<port> => PC1:22 (route connection from router port 4000 to port 22 of PC1)
ssh -p <port> user@<router-IP>
resulta na conexão, da Internet, ao host local especificado.