¿Es posible hacer que el comando sudo admita claves privadas SSH, de modo que cuando el usuario inicie sesión con una clave privada pueda sudo sin escribir una contraseña?
Esto permitiría almacenar las contraseñas de administrador de sistemas UNIX en un almacenamiento encriptado en frío y nunca necesitaría acceder a ellas, suponiendo que los usuarios usen claves SSH privadas seguras siempre para iniciar sesión en el servidor.
sudo visudo
y cambie su contraseña paraNOPASSWD: ALL
ver si eso funcionaRespuestas:
La opción para hacerlo ha existido desde (al menos) abril de 2014 .
Deberá instalar un paquete llamado
pam_ssh_agent_auth
(disponible para Centos 7, YMMV), y luego configurarlo/etc/pam.d/sudo
para aceptarlo como método de autorización. Finalmente, es posible que deba agregarSSH_AUTH_SOCK
a la lista de variables de entorno que persisten durantesudo
.La wiki de Gentoo tiene detalles para estos pasos.
fuente
Esto no es posible sin algunos cambios serios en el código de sudo y sshd. Sudo no sabe acerca de los métodos de inicio de sesión, y ssh no publica en otros programas nada que indique si la clave pública, la contraseña o algún otro mecanismo se utilizó para iniciar sesión.
Como alguien más dijo, puede usar la opción NOPASSWD en sudoers; esto se aplicaría siempre a usuarios específicos, no solo cuando usan ssh con claves privadas.
Si realmente lo desea, puede haber trucos que puede hacer con un programa suid que verifica el registro sshd y bloquea / edita el archivo sudoers para permitir que el usuario realice un sudo sin contraseña y una tarea periódica para revocar este permiso.
Dicho todo esto, creo que es una mala idea. Requerir una contraseña para comandos privilegiados tiene un par de buenos beneficios que la clave privada SSH no tiene. En particular, le permite tener tiempos de espera para la autenticación (se debe volver a ingresar la contraseña, no es cierto para las sesiones ssh), le permite tener mínimos de contraseña y rotación (a diferencia de las claves ssh, que tienen una frase de contraseña fuera del control del servidor).
fuente
Un par de respuestas Point to sudo sin una contraseña de usuario separada. Debe tener en cuenta que esto disminuirá su seguridad.
Para un usuario que ya se autenticó fuertemente con un certificado, esto podría no ser un problema porque está en posesión del certificado que teóricamente podría hacerlo root.
Sin embargo, si piensa en vulnerabilidades que proporcionarán a un atacante con un shell de usuario limitado y este usuario tiene NOPASSWD establecido en el archivo sudoers, el atacante es root sin tener ninguna credencial para el sistema.
Si sudo requiere una contraseña del usuario, el atacante necesita tiempo y suerte para escalar sus privilegios a root.
fuente