¿Comando para deshabilitar el inicio de sesión con contraseña a través de ssh?

¿Comando para deshabilitar el inicio de sesión con contraseña a través de ssh?

Entonces, sé que puedo deshabilitar la autenticación de contraseña a través de ssh /etc/ssh/sshd_configmodificando PasswordAuthentication Yesa PasswordAuthentication no. Quiero asegurarme de que los inicios de sesión ssh solo se puedan realizar mediante un archivo de claves para cada usuario.

¿Existe algún comando agradable de una sola línea que establezca esta opción?

Respuesta1

Probé esto con éxito:

sudo sed -E -i 's|^#?(PasswordAuthentication)\s.*|\1 no|' /etc/ssh/sshd_config
if ! grep '^PasswordAuthentication\s' /etc/ssh/sshd_config; then echo 'PasswordAuthentication no' |sudo tee -a /etc/ssh/sshd_config; fi

Esto se utilizará sedpara editar el archivo en el lugar. Además de reemplazar lo que sigue PasswordAuthenticationcon no, eliminará el comentario al principio de la línea, que está ahí de forma predeterminada en Ubuntu. Si este comando se ejecuta por segunda o tercera vez, no habrá cambios adicionales en el archivo.

La segunda línea agrega la opción de configuración al archivo en caso de que se haya eliminado de alguna manera.

información relacionada