Certifique-se de que você não esteja apenas fornecendo uma porta do IP público para o IP privado de destino, mas também permitindo o tráfego de entrada por meio dessa porta e do IP público no firewall.
Você não está tendo problemas de SSH locais, portanto, pode descartar com segurança o firewall do sistema operacional do servidor como seu problema. No entanto, seu firewall que possui o IP público precisa de regras configuradas para permitir o tráfego de entrada em public-ip: 22 mesmo que você tenha um encaminhamento em seu NAT configurado para essa porta.
Eu geralmente recomendo usar o 22 para SSH, a menos que você tenha um bom motivo para não fazê-lo. Uma boa razão seria que outra máquina mais importante está aceitando conexões SSH nesta porta, como o próprio firewall. Isso apenas torna as coisas mais óbvias em relação à funcionalidade.