A frase secreta que pode ser definida na chave privada não está relacionada ao servidor SSH ou à conexão a ele. Definir uma senha para a chave privada é apenas uma medida de segurança que o proprietário 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, são necessárias chaves privadas desprotegidas para automatizar o acesso ao servidor SSH remoto. Um bom hábito que eu recomendo para esses casos é aconselhar os usuários a fazer o hash do 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 terceiros tenham acesso a uma chave privada desprotegida, seria extremamente difícil descobrir para quais hosts remotos essa chave é válida. Obviamente, limpar o histórico do shell é obrigatório para que essa técnica tenha qualquer valor.
Além disso, outra coisa que você sempre deve ter em mente é não permitir que o root efetue login remotamente adicionando o seguinte na configuração do servidor SSH (sshd_config):
PermitRootLogin no
Por outro lado, se você deseja impedir que os usuários usem chaves para autenticar, mas usar senhas, adicione o seguinte ao seu sshd_config :
PasswordAuthentication yes
PubkeyAuthentication no