Quando você se conecta a public_ip: port, na verdade está se conectando ao roteador, mas como (muito provavelmente) seu host está atrás do NAT criado pelo próprio roteador, você precisa encaminhar a conexão para internal_ip: port.
Normalmente, você pode fazer isso a partir da página da Web do roteador, na seção de encaminhamento de porta.
Esteja ciente de que isso permite que qualquer pessoa se conecte de qualquer lugar, portanto, certifique-se de estar usando chaves ssh para efetuar login e evitar a força bruta por meio de ferramentas como failtoban ou ufw / iptables.