Tengo un montón de usuarios, que con claves SSH tienen acceso a cuentas en otros servidores. Actualmente tengo un script que recopila las claves públicas ssh y las distribuye a la cuenta correcta en los servidores correctos.
Lo que quiero hacer es obtener esa secuencia de comandos para verificar que la clave ssh de cualquier usuario tenga una frase de contraseña antes de aceptar la clave pública y distribuirla.
He intentado varias cosas, como usar un ssh-agent
y, ssh-add
y luego el problema surge cuando me ssh-add
piden una frase de contraseña.
¿Hay alguna manera de obtener algo como openssl
verificar la frase de contraseña, fallar ligeramente con un código de retorno de 1
si la clave tiene una frase de contraseña?
¡Gracias!
Respuestas:
Si un archivo de claves utiliza una frase de contraseña, tiene el atributo "Tipo de proceso:" establecido con la palabra "ENCRYPTED" adjunta.
Por lo tanto, puede determinar si un archivo de clave utiliza una frase de contraseña ejecutándolo
find
ygrep
ver si tiene la cadena 'ENCRYPTED'.imprime una lista de archivos que tienen frases de contraseña. Luego, puede compararlos con una lista de todos los archivos de claves para seleccionar aquellos que no usan una frase de contraseña. Se puede obtener una lista de todos los archivos de claves, por ejemplo, dejando el
-exec
parámetro fuera, como sigue:fuente
Proc-Type
encabezado no se escribe en el archivo, a pesar de estar cifrado.