Algunos de mis sistemas Linux y FreeBSD tienen docenas de usuarios. El personal utilizará estos nodos de "puerta de enlace ssh" para SSH en otros servidores internos.
Nos preocupa que algunas de estas personas usen una clave SSH privada sin cifrar (una clave sin una frase de contraseña . Esto es malo , porque si un cracker alguna vez obtuvo acceso a su cuenta en esta máquina, podrían robar la clave privada y ahora tener acceso a cualquier máquina que use esta misma clave. Por razones de seguridad, requerimos que todos los usuarios cifren sus claves SSH privadas con una frase de contraseña.
¿Cómo puedo saber si una clave privada no está encriptada (por ejemplo, no contiene una frase de contraseña)? ¿Existe un método diferente para hacer esto en una clave blindada ASCII frente a una clave no blindada ASCII?
Actualizar:
Para aclarar, suponga que tengo acceso de superusuario en la máquina y puedo leer las claves privadas de todos.
Respuestas:
Bueno, las claves privadas OpenSSH con frases de contraseña vacías en realidad no están encriptadas.
Las claves privadas cifradas se declaran como tales en el archivo de clave privada. Por ejemplo:
Entonces algo como
debería hacer el truco.
fuente
-L
indicador enumera solo los nombres de archivo que no coinciden con el patrón. Entonces esta respuesta es correcta por sí sola.Busqué todo esto y nunca encontré una respuesta satisfactoria, pero logré construir una, así que ...
Tenga en cuenta que esto actualizará el archivo si funciona, por lo que si está tratando de que los usuarios cuyas claves esté probando no lo noten, puede copiar primero la clave. OTOH, dado que acabas de atrapar a tu usuario con una clave sin contraseña, tal vez no te importe si se dan cuenta. :RE
fuente
-N ''
lugar para que la frase de contraseña se deje siempre sin cambios?Si tiene acceso a la clave privada, supongo, puede usarla sin frase de contraseña para autenticarse con la clave pública. Si esto funciona, sabes que no tiene frase de contraseña. Si lo hubiera hecho, le daría un mensaje de error.
Si no tiene acceso a la clave privada, dudo que pueda detectar esto. El propósito de la frase de contraseña es "desbloquear" la clave privada, no tiene ninguna función con respecto a la clave pública.
De hecho, si lo hiciera, haría que el sistema fuera menos seguro. Se podría usar la clave pública, que está disponible para tratar de montar fuerza bruta u otros ataques que intentan descifrar la frase de contraseña.
fuente