Entonces, sé que puedo deshabilitar la autenticación de contraseña a través de ssh /etc/ssh/sshd_config
modificando PasswordAuthentication Yes
a 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á sed
para editar el archivo en el lugar. Además de reemplazar lo que sigue PasswordAuthentication
con 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.