La frase de contraseña que se puede establecer en la clave privada no está relacionada con el servidor SSH o la conexión con él. Establecer una frase de contraseña para la clave privada es simplemente una medida de seguridad que el propietario de la clave puede tomar para evitar que un tercero acceda a su shell remoto en caso de que la clave privada sea robada.
Lamentablemente, no puede obligar a los usuarios a proteger sus claves privadas con frases de contraseña. A veces, se requieren claves privadas sin protección para automatizar el acceso al servidor SSH remoto. Un buen hábito que recomiendo encarecidamente para estos casos es aconsejar a los usuarios que hagan hash el archivo known_hosts (almacenado en ~ / .ssh / known_hosts ), que mantiene información sobre los hosts remotos a los que se conecta el usuario, utilizando el siguiente comando:
ssh-keygen -H -f ~/.ssh/known_hosts
De esta manera, incluso si un tercero obtuviera acceso a una clave privada desprotegida, sería extremadamente difícil averiguar para qué hosts remotos es válida esta clave. Por supuesto, borrar el historial del shell es obligatorio para que esta técnica tenga algún valor.
Además, otra cosa que siempre debe tener en cuenta es no permitir que root inicie sesión de forma remota agregando lo siguiente en la configuración de su servidor SSH (sshd_config):
PermitRootLogin no
Por otro lado, si desea evitar que los usuarios usen claves para autenticarse, pero en lugar de usar contraseñas, debe agregar lo siguiente a su sshd_config :
PasswordAuthentication yes
PubkeyAuthentication no