Três métodos:
1) Você pode encaminhar a porta 22 do seu roteador para a porta do seu PC em que o daemon está escutando. Quando você ssh PCuser@Public_IP_of_PC
(22 é a porta padrão, se outra porta for encaminhada, passe-a com o argumento -p), você acessará o PC atrás do roteador. A dinâmica exata do processo é explicada em detalhes aqui: link
2) Crie um túnel ssh reverso a partir do PC por trás do roteador para o laptop (desde que o laptop tenha um determinado IP) como tal:
ssh -v -N -R port_of_laptop:localhost:local_port_of_pc laptop_user@$laptop_ip
(no entanto, o laptop também está atrás de um roteador, desta vez uma porta deve ser encaminhada da parte superior do roteador do laptop para uma porta no laptop.)
No lado do laptop, você apenas usa ssh:
ssh -v -p port_of_laptop@localhost
3) Ou você pode configurar um servidor OpenVPN escutando na porta UDP 1194 (a melhor maneira é usar uma instância micro EC2 de camada livre na AWS com IP elástico). Então você fará seus clientes de laptop e PC dentro da mesma VPN. Dessa forma, conectados à VPN através da interface tun0, todos os clientes podem acessar uns aos outros como se estivessem na mesma LAN, mesmo que eles não estejam. A conexão cliente-cliente também deve estar ativada. A coisa boa com a abordagem é que, você não precisa rastrear o endereço do roteador ao qual o PC está conectado (se ele tiver um IP dinâmico que muda a cada reinicialização / reconexão).
ssh PCuser@IP_of_PC_given_by_tun0