Se você não permitir senhas para logins SSH, mas, ao invés disso, restringir logins a logins baseados em chaves, você evitará que malfeitores entrem em seu sistema adivinhando uma senha. Se você executar um servidor SSH que esteja acessível à Internet como um todo na porta 22, provavelmente descobrirá que há pessoas tentando invadi-lo diariamente via ataques de dicionário , ou seja, tentando fazer login com um nome de conta que possa estar presente no sistema, por exemplo," root "ou até mesmo um nome comum como" john ", emparelhado com cada palavra em um dicionário como uma senha. Não é necessário um script automatizado para tentar todas as palavras possíveis em um dicionário com um determinado nome de usuário, se não houver mecanismo no servidor SSH, como Fail2ban para restringir o acesso ao servidor de endereços IP dos quais muitas tentativas de login inválidas foram observadas.
Mas, restringir os logins SSH à autenticação baseada em chave não o torna invulnerável a possíveis comprometimentos. Por exemplo, foram encontradas vulnerabilidades nas versões anteriores do SSH . Por exemplo, suponha que uma nova vulnerabilidade de dia zero seja encontrada no protocolo SSH, se você também estivesse restringindo SSH logins para apenas endereços IP específicos, você teria um nível adicional de proteção, ou seja, você teria uma defesa em profundidade estratégia onde você tinha outra camada de proteção fora dos mecanismos empregados pelo software do servidor SSH. Às vezes, porém, não é prático saber todos os endereços IP dos quais um login SSH legítimo precisa ocorrer ou até mesmo limitar o acesso do firewall do sistema a um intervalo de endereços IP, mas, se você puder fazer isso, fornecerá um nível adicional de proteção.