Descubrí que funcionar sudo bash
y luego ejecutar ecryptfs-recover-private
como root (en lugar de a través de sudo) funcionó. No estoy seguro de por qué debería ser diferente.
Editar:
TL; DR:
# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase - | ecryptfs-add-passphrase --fnek -
< Type your login password here >
Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring
No verá un mensaje y debe escribir su contraseña de inicio de sesión, ciega, en el comando anterior.
Reemplace el aaaaaaaaaaaaaaaa
y bbbbbbbbbbbbbbbb
abajo con las firmas hexadecimales entre paréntesis de la salida anterior, en orden:
# mount -i -t ecryptfs -o ecryptfs_sig=aaaaaaaaaaaaaaaa,ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb,ecryptfs_cipher=aes,ecryptfs_key_bytes=16 /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
Preliminares
Resulta que solo se ejecuta ya que la raíz no funcionó de manera confiable para mí; a veces lo hizo, a veces no. Básicamente, ecryptfs parece tener errores y es poco amigable para el usuario, a menudo confuso, contraseñas de inicio de sesión y frases de montaje. Después de bajar por una madriguera de conejo profunda y oscura, tengo algunos consejos que deberían ayudar. Estas notas son para Ubuntu 17.10, ecryptfs-utils 111-0, y debe convertirse en root antes de comenzar. Supongo que desea montar su directorio de inicio /mnt/crypt
(que ya debería estar montado) /mnt/plain
y debe reemplazarlo user
con el nombre de usuario.
Comience fácil
Lo primero que debes intentar es:
# ecryptfs-recover-private /mnt/crypt/.ecryptfs/user/.Private
Si esto funciona, bueno, tienes suerte. Si no, puede dar un mensaje de error de mount
aproximadamente no such file or directory
. Esto es extremadamente engañoso: lo que realmente significa es que su frase de contraseña de montaje es incorrecta o falta.
Consigue las firmas
Aquí está la parte importante: necesitamos verificar que ecryptfs realmente está intentando la frase de contraseña de montaje correcta. Las frases de contraseña deben cargarse en el kernel de Linux antes de que ecryptfs pueda montar su sistema de archivos. ecryptfs le pide al kernel por su firma. La firma es un valor hexadecimal de 16 bytes (y no es criptográficamente sensible). Puede encontrar las firmas de frase de contraseña que ecryptfs espera:
# cat /mnt/crypt/.ecryptfs/user/.ecryptfs/Private.sig
aaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbb
Recuerda estos. El objetivo es obtener frases de contraseña con estas firmas cargadas en el kernel y luego decirle a ecryptfs que las use. La primera firma ( aaaaaaaaaaaaaaaa
) es para los datos, y la segunda ( bbbbbbbbbbbbbbbb
) es la Clave de cifrado de nombre de archivo (FNEK).
Obtén la frase de contraseña de montaje
Este comando le pedirá su contraseña de inicio de sesión (con un mensaje engañoso) y generará su frase de contraseña de montaje :
# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase
Copia esto pero ten cuidado !! , ya que esto es extremadamente criptográficamente sensible, las claves del reino.
Prueba un montaje interactivo
Lo siguiente que debes intentar es:
# mount -t ecryptfs /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
Lo crucial aquí es que mount
necesita su frase de contraseña de montaje (súper sensible) que acabamos de copiar (no su contraseña de inicio de sesión).
Esto le hará algunas preguntas, y puede aceptar los valores predeterminados, excepto decir que sí Enable filename encryption
. Puede darle una advertencia y pedirle que guarde en caché las firmas; puede decir sí a ambos, pero verifique que tenga la frase de contraseña de montaje correcta.
Verá las opciones que mount
ha decidido probar por usted:
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=aaaaaaaaaaaaaaaa
Mounted eCryptfs
Si las firmas son incorrectas (no coinciden con las que obtuvo Private.sig
), el soporte no funcionará.
... pero informará muy inútilmente que lo hizo. Tendrá que hacer un ls /mnt/plain
archivo cat para asegurarse. En este punto, también puede mirar /var/log/syslog
y verificar que ecryptfs está buscando las mismas firmas que nosotros.
Claramente, hay dos problemas serios con ecryptfs aquí, y tenemos que solucionarlos.
Cargue las claves en el kernel
Si el montaje interactivo no ayudó, tenemos que cargar las claves en el núcleo nosotros mismos y especificarlas manualmente en las opciones de montaje.
# ecryptfs-add-passphrase --fnek
Y pegue en su (súper sensible) frase de contraseña de montaje copiada desde arriba. Esto debería generar:
Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring
Montar manualmente
Ahora las frases de contraseña se cargan en el núcleo, y solo necesitamos decirle a mount que las use:
# umount /mnt/plain
# mount -i -t ecryptfs -o ecryptfs_sig=aaaaaaaaaaaaaaaa,ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb,ecryptfs_cipher=aes,ecryptfs_key_bytes=16 /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
Notarás que las opciones son similares a las que imprimió la montura interactiva, excepto que le estamos diciendo manualmente a ecryptfs qué pasa.
Ojalá esto funcione. De lo contrario, puede verificar que las claves estén cargadas en el kernel con las firmas correctas keyctl list @u
, lo que debería imprimir al menos las dos firmas que espera.
ecryptfs-recover-private
salida genera un error de montaje (2). intente ejecutarsudo ecryptfs-manager
, presione 4 (salir), luego vuelva a ejecutar el originalecryptfs-recover-private
. debería funcionar ahoraecryptfs
alguna versión y llamar al administrador simplemente establece algunas variables que luego son reutilizadas por el montaje. ¿Alguna idea de cómo automatizar esto para poder montar mis carpetas después de cada reinicio?keyctl link @u @s
Fue una solución mucho más simple para mí. Los créditos van aquí: bugs.debian.org/cgi-bin/bugreport.cgi?bug=870126Para los futuros espectadores de estas preguntas y respuestas: el mismo síntoma aparente puede ser causado por diferentes razones subyacentes. El síntoma se ve así:
En mi caso, esta respuesta tenía la clave de la solución. El problema era que estaba tratando de hacer todo de forma remota a través de SSH en una sesión de Tmux, que estaba limitada por la siguiente línea
/etc/pam.d/sshd
:La respuesta antes mencionada sugiere comentar esa línea e intentar nuevamente en una nueva sesión.
La solución simple que funcionó en mi caso fue hacerlo en el lugar, evitando por completo SSH y Tmux. Una solución alternativa más complicada (que no he verificado) es usar algo como conspy para obtener acceso a un terminal ilimitado de forma remota.
fuente