La comprobación de las claves ssh tiene frases de contraseña


8

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-agenty, ssh-addy luego el problema surge cuando me ssh-addpiden una frase de contraseña.

¿Hay alguna manera de obtener algo como opensslverificar la frase de contraseña, fallar ligeramente con un código de retorno de 1si la clave tiene una frase de contraseña?

¡Gracias!


¿Podría aclarar si el requisito es tener una frase de contraseña o no tenerla, y por qué razones?
user1686

Gravedad: mi requisito es asegurarme de que los usuarios hayan establecido frases de contraseña en sus claves ssh, solo las claves con frases de contraseña se distribuirán a los otros servidores.
Peter Farmer el

Respuestas:


11

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 findy grepver si tiene la cadena 'ENCRYPTED'.

# list keyfiles that USE a passphrase
HOMES=/home /mnt/nfs_home
find $HOMES -maxdepth 3 -type f -path '*/.ssh/id* -name "id_[dr]sa*" -exec grep -q "ENCRYPTED" {} \; -print

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 -execparámetro fuera, como sigue:

# list all keyfiles
HOMES=/home /mnt/nfs_home
find $HOMES -maxdepth 3 -type f -path '*/.ssh/id* -name "id_[dr]sa*" -print

Ya no es posible con el nuevo formato de clave SSH, el Proc-Typeencabezado no se escribe en el archivo, a pesar de estar cifrado.
Oneiroi
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.