Dans les versions précédentes d'Ubuntu et les versions actuelles de Debian, vous pouvez déverrouiller un système entièrement chiffré (à l'aide de dmcrypt et de LUKS) au moment du démarrage via SSH.
C'était aussi simple que:
Au démarrage, il suffit de ssh sur la machine et de faire:
echo -ne "keyphrase" > /lib/cryptsetup/passfifo
La machine serait alors déverrouiller et démarrer le système crypté.
En suivant exactement les mêmes étapes sur Ubuntu 11.10, je peux ssh sur la machine, mais /lib/cryptsetup/passfifo
n’existe pas.
Il semble n'y avoir aucun moyen de déverrouiller le système sur ssh. Je ne sais pas où chercher pour savoir si cette fonctionnalité a été modifiée ou si elle a été supprimée.
Je viens de faire quelques recherches sur Google et il semble que Plymouth pose problème. Si plymouth est là, au démarrage, cryptsetup vous demandera le mot de passe pour plymouth, ce qui signifie qu'il n'utilise pas passfifo.
La meilleure solution de contournement semble consister à insérer le script suivant dans le répertoire /usr/share/initramfs-tools/hooks/
. Une fois que vous l'avez placé, vous pouvez chmod +x
et vous devez alors update-initramfs -u
. Vous devriez alors pouvoir utiliser la commande unlock
(créée par le script ci-dessous).
Cela suppose que vous utilisiez une clé ssh pour vous connecter. Si vous voulez utiliser un mot de passe, vous devez mettre SSHUSERPASS=<username>
dans /etc/initramfs-tools/initramfs.conf
#!/bin/sh
PREREQ="dropbear"
prereqs() {
echo "$PREREQ"
}
case "$1" in
prereqs)
prereqs
exit 0
;;
esac
. "${CONFDIR}/initramfs.conf"
. /usr/share/initramfs-tools/hook-functions
if [ "${DROPBEAR}" != "n" ] && [ -r "/etc/crypttab" ] ; then
cat > "${DESTDIR}/bin/unlock" <<-EOF
#!/bin/sh
if PATH=/lib/unlock:/bin:/sbin /scripts/local-top/cryptroot
then
/sbin/pkill cryptroot
/sbin/pkill -f "plymouth ask-for-pass"
/sbin/pkill cryptsetup
exit 0
fi
exit 1
EOF
chmod 755 "${DESTDIR}/bin/unlock"
mkdir -p "${DESTDIR}/lib/unlock"
cat > "${DESTDIR}/lib/unlock/plymouth" <<-EOF
#!/bin/sh
[ "\$1" == "--ping" ] && exit 1
/bin/plymouth "\$@"
EOF
chmod 755 "${DESTDIR}/lib/unlock/plymouth"
# Enable password login
if [ -n "$SSHUSERPASS" ]
then
sed -n "s/^${SSHUSERPASS}:/root:/p" /etc/shadow > "${DESTDIR}/etc/shadow"
chmod 640 "${DESTDIR}/etc/shadow"
fi
fi
Vous pouvez en lire plus dans ce post sur le site ubuntuforums , ce bug du tableau de bord et le post allemand, j'ai piqué le plus gros de cela .
jusqu’à ce que ce bogue soit résolu, vous pouvez essayer de tuer d’abord plymouth. Malheureusement, il n’existe pas de moyen facile de déterminer le PID de plymouthd. Mais plymouth sait comment s’arrêter :-) Donc, ce qui suit devrait suffire.
plymouth --quit; echo -ne "keyphrase" > /lib/cryptsetup/passfifo