A frase secreta que pode ser definida na chave privada é não relacionada ao servidor SSH ou à conexão com ela. A definição de uma frase secreta para a chave privada é apenas uma medida de segurança que o dono da chave pode tomar para impedir o acesso ao seu shell remoto por terceiros, caso a chave privada seja roubada.
Infelizmente, você não pode forçar os usuários a proteger suas chaves privadas com senhas. Às vezes, chaves privadas desprotegidas são necessárias para automatizar o acesso ao servidor SSH remoto. Um bom hábito que recomendo strongmente para tais casos é aconselhar os usuários a hash o arquivo known_hosts (armazenado em ~ / .ssh / known_hosts ), que mantém informações sobre os hosts remotos aos quais o usuário se conecta, usando o seguinte comando:
ssh-keygen -H -f ~/.ssh/known_hosts
Dessa forma, mesmo que um terceiro tenha acesso a uma chave privada desprotegida, seria extremamente difícil descobrir para quais hosts remotos essa chave é válida. É claro que limpar o histórico do shell é obrigatório para que essa técnica tenha algum valor.
Além disso, outra coisa que você deve sempre ter em mente, não é permitir que o root faça o login remotamente adicionando o seguinte na configuração do seu servidor SSH (sshd_config):
PermitRootLogin no
Por outro lado, se você quiser impedir que os usuários usem as chaves para autenticar, mas ao invés disso use senhas, você deve adicionar o seguinte ao seu sshd_config :
PasswordAuthentication yes
PubkeyAuthentication no