O dispositivo de roteamento que possui o endereço IP público precisa encaminhar o tráfego da porta 22 para o servidor Ubuntu que está por trás do firewall. Se você nos disser que tipo de dispositivo de firewall / borda é, poderemos ajudá-lo a indicar uma direção mais específica.
EDIT: Você precisará verificar se o tráfego está realmente sendo enviado para o seu servidor Ubuntu. Execute o tcpdump para ver se o tráfego SSH está atingindo seu servidor. Se não for, você ainda tem um problema no roteador de borda. Se for, então você pode começar a se concentrar no servidor Ubuntu. Depois de descobrir isso, poderemos ajudá-lo mais.
EDIT 2: Se você configurar o encaminhamento de porta para a porta 22, o roteador manipula a tradução para todo o tráfego vinculado à porta 22 direcionada ao endereço IP público e envia imediatamente o tráfego para o servidor Ubuntu . O servidor Ubuntu, em seguida, vê o tráfego proveniente do roteador, e todas as respostas para o tráfego da porta 22 são enviadas para o roteador, que então o encaminha para você. O roteador lida com toda a tradução do tráfego, mantendo uma tabela de quem está se comunicando com qual porta e atribuindo sessões exclusivas a cada comunicante. Dessa forma, até várias pessoas podem falar com o servidor Ubuntu através do ssh usando o endereço IP externo.
Por exemplo: Se você tiver um endereço IP externo na casa de 1.1.1.1 e seu roteador do escritório tiver um endereço IP externo de 2.2.2.2 e o servidor Ubuntu tiver um IP local de 192.168.1.10 (atrás do 2.2.2.2 roteador), o tráfego flui assim:
- 1.1.1.1 conecta-se a 2.2.2.2:22
- 2.2.2.2:22 é encaminhado para 192.168.1.10:22.
- 192.168.1.10:22 responde ao roteador em 2.2.2.2:22 (bem, na realidade ele responde ao endereço IP local do roteador, não ao endereço IP público. Provavelmente seria 192.168.1.1:22 em este exemplo.)
- O roteador encaminha as informações de volta para o IP público da sua casa de 1.1.1.1.