Mi máquina tiene una SSD, donde instalé el sistema y una HDD, que uso como almacenamiento para archivos grandes y / o de uso poco frecuente. Ambos están encriptados, pero elegí usar la misma frase de contraseña para ellos. SSD está montado en /
y HDD en /usr/hdd
(los usuarios individuales tienen un directorio y pueden crear enlaces simbólicos como quieran desde el directorio de inicio).
Cuando el sistema se inicia, inmediatamente solicita una frase de contraseña para el SSD, y solo un par de segundos más tarde para la del HDD (se monta automáticamente). Dado que ambas frases de contraseña son iguales, ¿hay alguna forma de configurar el sistema para que pregunte solo una vez?
linux
disk-encryption
cryptsetup
doble
fuente
fuente
expect
script o similar que se llame para montar los discos en lugar de que el sistema lo haga. En cambio, el sistema llamará al script que solicitará la contraseña, la almacenará y la proporcionará a cada una de las operaciones de montaje./etc/crypttab
para desbloquear la segunda unidad .Respuestas:
Distribuciones basadas en Debian:
Debian y Ubuntu envían un script de almacenamiento en caché de contraseña decrypt_keyctl con el paquete cryptsetup .
El script decrypt_keyctl proporciona la misma contraseña para múltiples objetivos LUKS encriptados, evitando que la escriba varias veces. Se puede habilitar en crypttab con la
keyscript=decrypt_keyctl
opción. La misma contraseña se utiliza para destinos que tienen el mismo identificador en el campo de archivo de claves . En el arranque se solicita una contraseña para cada identificador una vez.Un ejemplo de crypttab :
Después de actualizar su criptab , también deberá actualizar initramfs para aplicar los cambios. Uso
update-initramfs -u
.El archivo Léame completo para decrypt_keyctl se encuentra en
/usr/share/doc/cryptsetup/README.keyctl
Desafortunadamente, esto actualmente no funciona en los sistemas Debian que usan systemd init debido a un error (otros sistemas init no deberían verse afectados). La página de manual de Debian crypttab sugiere como una solución alternativa para usar la
initramfs
opción de forzar el procesamiento en la etapa initramfs de arranque.Distribuciones que no proporcionan la secuencia de comandos decrypt_keyctl :
Si su distribución no proporciona decrypt_keyctrl , el dispositivo se puede desbloquear utilizando un archivo de claves en el sistema de archivos raíz cifrado. Esto cuando el sistema de archivos raíz se puede desbloquear y montar antes que cualquier otro dispositivo encriptado.
LUKS admite múltiples ranuras de teclas. Esto le permite desbloquear alternativamente el dispositivo con contraseña si el archivo de clave no está disponible / se perdió.
Genere la clave con datos aleatorios y configure sus permisos para que el propietario pueda leerlos solo para evitar filtrarlos. Tenga en cuenta que el archivo de clave debe estar en la partición raíz que se desbloquea primero.
Agregue la clave a su dispositivo LUKS
Configure crypttab para usar el archivo de clave. La primera línea debe ser el dispositivo raíz, ya que los dispositivos se desbloquean en el mismo orden que se enumera en crypttab . Use rutas absolutas para los archivos clave.
fuente
crypttab
(no toquéUUID=
creado por el instalador del sistema, supongo que no debería importar) y las entradas resultantes/var/log/syslog
. Los errores son algo comprensibles, pero no tengo idea de qué hacer con ellos. El archivo/lib/cryptsetup/scripts/decrypt_keyctl
existe, así que no sé por qué se queja de una opción desconocida. También tengo ni idea de lo que vaya a especificar como archivo de claves, no veo ninguna explicación en cualquier lugar ...update-initramfs -u -k $(uname -r) -v
debería salirAdding binary /lib/cryptsetup/scripts/decrypt_keyctl
.lsinitramfs /boot/initrd.img-$(uname -r)
update-initramfs
dicho, me di cuenta de esto:E: /usr/share/initramfs-tools/hooks/cryptkeyctl failed with return 1.
. Después de buscar un poco en Google, descubrí que probablemente necesito unkeyutils
paquete (realmente no estaba instalado). Ahoraupdate-initramfs
tiene éxito ylsinitramfs
lo mencionadecrypt_keytls
. Se actualizará después del próximo arranque (probablemente mañana).Aquí está mi solución en Debian, dado el error al que hace referencia anteriormente @sebasth.
Mi configuración es ligeramente diferente. Tengo una partición raíz encriptada y un montón de discos RAID. Para mí, tuve que agregar una opción initramfs al crypttab:
Esto le dice a update-initramfs que quiero tener estas entradas crypttab montadas en initramfs. Verifiqué mi ficha de cifrado ejecutando
Tenga en cuenta que mis discos de incursión son simples dm-crypt. Esto significaba que no podía usar el método de archivo de claves de luks que funciona alrededor del error del script del sistema. Para dm-crypt simple, tendría que almacenar la frase de contraseña en texto sin formato.
Los discos cifrados deben montarse antes de
update-initramfs
ejecutarse; de lo contrario arrojará errores. Tuve que buscar las siguientes líneas cuando se creó mi initramfs:que mostró los siguientes dos archivos:
siendo agregado a initramfs.
Finalmente, tuve que deshabilitar systemd manejando mi crypttab, para lidiar con el error mencionado anteriormente: systemd no soporta la opción keycript en crypttab. Para esto, agregué la opción de kernel
a / etc / default / grub y se ejecutó
update-grub
. systemd ahora ignora crypttab, y todas las particiones encriptadas se cargan en initramfs.Debido a que tengo una partición raíz encriptada, cryptroot no parece almacenar en caché mi clave. Esto significa que tengo que ingresar mi contraseña dos veces; uno para la partición raíz y una vez para mi matriz de incursiones.
fuente
Otra opción es usar el
/lib/cryptsetup/scripts/decrypt_derived
script, que también es parte de cryptsetup en Debian / Ubuntu.En lugar de almacenar en caché la clave, utiliza la clave de volumen de un disco como contraseña adicional para el segundo disco. Esto requiere agregar una segunda contraseña al segundo disco cifrado (y tercero, etc.), pero LUKS lo admite. Por lo tanto, esta solución también funciona si sus múltiples discos encriptados no usan la misma contraseña.
Ejemplo para agregar la clave de sda6crypt a sda5:
Agregue la clave de volumen de sda6crypt como contraseña adicional para sda5:
Configure sda5crypt para que se desbloquee automáticamente en
/etc/crypttab
Esto usa una tubería con nombre (
fifo
) para pasar la clave para evitar tener que almacenar la clave de volumen en un archivo temporal en el disco.La
keyscript
opción solo funciona sicrypttab
es procesada por las herramientas de configuración de cifrado originales de Debian, la reimplementación systemd actualmente no es compatible. Si su sistema usa systemd (que es la mayoría de los sistemas), necesita lainitramfs
opción de forzar el procesamiento en el initrd por las herramientas cryptsetup, antes de que se inicie systemd.Basado en /unix//a/32551/50793
fuente