Há pouca diferença entre permitir conexões para ssh de qualquer IP e permitir conexões para ssh de qualquer IP para um determinado usuário, já que a autenticação do usuário tem que acontecer após a conexão - isto é, depois que já permite que o originador se conecte. Você certamente deve restringir o acesso direto ao ssh para servidores que não precisam dele em geral, independentemente do IP de origem.
Se você não deseja ter a porta ssh aberta para todos, você pode tentar algumas destas opções:
- Você pode configurar um servidor VPN e usar um cliente VPN.
- Você pode configurar "batida de porta", em que uma série específica de tentativas de conexão para as portas corretas fará com que a porta ssh comece a ouvi-lo por tempo suficiente para se conectar.
- Você pode adicionar os netblocks dos ISPs aos quais você se conecta normalmente à lista de endereços permitidos para reduzir enormemente o número de possíveis invasores, mas ainda manter as conveniências de uma solução "conectar-se praticamente em qualquer lugar".
- Você pode fazer com que o seu ssh escute em uma porta não padrão, não ganhando nada em defesa contra um ataque direcionado, mas uma ótima maneira de impedir que as crianças usuais do script executem investigações automatizadas.
Outras opções podem incluir:
- Usar algo como invasores de bloqueio do fail2ban após um determinado número de tentativas incorretas de senha.
- Mudando para chaves ssh e configurando o sshd para não aceitar senha como um método válido de autenticação.
- Usando um servidor "entre" confiável que você sabe que é bem mantido e seguro, então faça com que seu servidor aceite apenas conexões ssh de lá.
Sempre será um compromisso entre conveniência e segurança, tente encontrar o ponto que funciona para você.