web-dev-qa-db-fra.com

Monter des volumes chiffrés à partir de la ligne de commande?

Si j'ai un disque externe crypté (ou un disque interne qui n'est pas dans fstab), je vois une entrée correspondante dans Nautilus - avec une entrée telle que "X GB Encrypted Volume". Je peux cliquer sur ce volume et je suis invité à saisir un mot de passe pour décrypter et monter le périphérique.

Mais comment puis-je faire cela à partir de la ligne de commande?

Cette page wiki , et d'autres documents que je peux trouver, ne font référence qu'à des méthodes d'interface graphique permettant de déchiffrer le périphérique; mais cela ne fonctionnera pas dans le contexte de serveurs sans tête ou de connexions SSH. Existe-t-il un moyen simple de monter des périphériques sur des emplacements automatiques dans /media, exactement comme ils le feraient avec l'interface graphique?

(Je ne pose pas de question sur les répertoires de départ chiffrés. Je connais ecryptfs-mount-private. Cette question concerne des volumes chiffrés supplémentaires.)

75
cha

Les étapes de la réponse de @Georg Schölly ne fonctionnaient pas pour moi à l'époque, bien qu'elles puissent fonctionner maintenant, quelques versions d'Ubuntu après. À l'époque, après l'étape Sudo mount /dev/mapper/my_encrypted_volume /media/my_device, j'ai eu l'erreur:

mount: type de système de fichiers inconnu 'LVM2_member'

Déverrouillage et montage du disque avec udiskctl

Au lieu de cela, j'ai utilisé udisksctlname__, une interface de ligne de commande qui interagit avec le service udisksdname__.

Voici ce qui a fonctionné (/dev/sdb5 est la partition de mon disque dur marquée crypt-luks):

udisksctl unlock -b /dev/sdb5
udisksctl mount -b /dev/mapper/ubuntu-root

Après avoir tapé la première commande, vous serez invité à saisir votre phrase secrète de chiffrement. Une fois que la partition cryptée est déverrouillée, la deuxième commande la monte. Si cela réussit, vous obtiendrez un message similaire à ceci:

Mounted /dev/dm-1 at /media/dpm/e8cf82c0-f0a3-41b3-ab28-1f9d23fcfa72

De là, j'ai pu accéder aux données :)

Remarques

  • Les commandes sont exécutées sansSudoname__.
  • La dénomination ubuntu-root peut changer entre les différentes versions d’Ubuntu (par exemple, je l’ai aussi appelée system-root). Un moyen simple de connaître le nom consiste à exécuter la commande suivante après avoir déverrouillé la partition LUKS:

    ls -la /dev/mapper

    Ensuite, en regardant la sortie de la commande lsname__, le nom dont vous aurez besoin sera généralement celui qui a un lien symbolique avec /dev/dm-1

  • Cependant, j'ai remarqué un inconvénient à utiliser udisksctlname__. Une fois déverrouillée, la partition est mappée en tant que lien symbolique dans /dev/mapper. Le nom de ce lien symbolique devient l'UUID du périphérique. Cependant, des outils tels que initramfs-update s'attendent à ce que le lien symbolique corresponde au nom indiqué dans /etc/crypttab et imprimera une erreur à moins que le lien symbolique ne soit renommé. En guise d'alternative, utiliser cryptsetup luksOpen semble définir correctement le nom du lien symbolique.
55
David Planella

Votre volume est probablement chiffré avec LUKS, voici comment le monter:

Vous avez besoin:

Sudo apt-get install cryptsetup

Pour déchiffrer le volume:

Sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume

Maintenant vous pouvez le monter comme d'habitude:

Sudo mkdir /media/my_device
Sudo mount /dev/mapper/my_encrypted_volume /media/my_device

Pour verrouiller à nouveau le conteneur, il doit d'abord être démonté:

Sudo umount /media/my_device
Sudo cryptsetup luksClose my_encrypted_volume

Pour le placer automatiquement à l'emplacement /media, utilisez l'outil udisks.

Sudo udisks --mount /dev/mapper/my_encrypted_volume
82
Georg Schölly

Si vous obtenez cette erreur:

mount: unknown filesystem type 'LVM2_member'

courir:

Sudo apt-get install lvm2
Sudo lvscan

puis activez tous les LVM que vous voyez

Sudo vgchange -ay

puis relancez le montage:

Sudo mount /dev/mapper/my_encrypted_volume /media/my_device
20
taitelman

Un problème que j'ai rencontré, était groupes de volumes en double: Mon système de récupération et le lecteur à récupérer étaient des systèmes Ubuntu avec LVM. C'est pourquoi j'avais deux groupes de volumes ubuntu-vg (vgdisplay les afficherait tous les deux, chacun avec son propre UUID, mais je ne pouvais pas accéder à leurs volumes logiques).

Ma solution s'appuie sur la réponse de Georg:

  • Démarrez à partir d'un live-linux (pour ne pas vous retrouver dans le nom du groupe de volumes dupliqué)
  • Sudo cryptsetup luksOpen /dev/sdaX my_encrypted_volume
  • entrez votre phrase secrète lorsque vous y êtes invité
  • Sudo vgscan devrait maintenant récupérer les volumes/groupes contenus.

  • DRAGONS À L'AVANT: NOUS CHANGONS LE NOM DU GROUPE VOLUME. VOUS NE POUVEZ PAS COMMENCER À CONDUIRE APRÈS!!

    utilisez Sudo vgrename ubuntu-vg ubuntu-vg2 pour renommer le groupe de volumes.

    Si vous devez démarrer à partir de ce lecteur, vous pouvez effectuer cette procédure à nouveau, mais renommez votre groupe de volumes en le remettant en ubuntu-vg. Une autre possibilité consiste à modifier votre configuration de démarrage en utilisant le nouveau nom de vg.

Maintenant que le nom de domaine en double est résolu, je peux redémarrer dans mon système habituel, rétablir le cryptsetup..., vgscan, puis monter le /dev/mapper/ubuntu--vg2-root où bon vous semble.

13
amenthes

sdb1 voici un exemple où vous devriez entrer le nom de votre appareil, aucune de ces commandes ne nécessitera de privilèges root

déverrouiller le disque crypté

udisksctl unlock -b /dev/sdb1

après avoir inséré le mot de passe correct, le résultat obtenu sera le suivant: Débloqué/dev/sdb1 sous la forme/dev/dm-

puis montez-le sur/media /

udisksctl mount -b /dev/dm-3

il devrait produire quelque chose comme ceci: Monté/dev/dm-3 sur/media/yourUserName/sdb

le démonter

udisksctl unmount -b /dev/dm-3

pour le verrouiller à nouveau

udisksctl lock -b /dev/sdb1
5
D.Snap

Toutes les réponses ci-dessus partaient du principe que l'utilisateur sait déjà quelle partition est la partition cryptée. Venant de quelqu'un qui n'aime pas tellement la ligne de commande, je m'attendais à une réponse conviviale ... Voilà donc mes 2cents.

  1. Ouvrez l'application "disques" d'ubuntu.
  2. Localisez votre disque dur monté dans le panneau de gauche.
  3. Cliquez sur la partition qui a "LUKS" dans son nom: ainsi, vous pourrez voir son point de montage dans le texte "Périphérique" ci-dessous (dans mon cas: /dev/sdb4).

Ensuite, j'ai essayé de le monter comme indiqué ci-dessus:

$ Sudo cryptsetup luksOpen /dev/sdb4 someNameForMyVolume
Enter passphrase for /dev/sdb4: 

Mais j'ai cette erreur:

Cannot use device /dev/sdb4 which is in use (already mapped or mounted).

Ok, donc j'imagine que nautilus a déjà essayé de le monter (car il m’a demandé le mot de passe lors de la connexion USB, même s’il n’a pas pu afficher l’arbre déchiffré). Cependant, le message d'erreur n'est pas vraiment utile car il ne me dit pas où il est déjà mappé/monté. Mais cette commande aide dans ce cas:

$ udisksctl unlock -b /dev/sdb4
Passphrase: 
Error unlocking /dev/sdb4: GDBus.Error:org.freedesktop.UDisks2.Error.Failed: Device /dev/sdb4 is already unlocked as /dev/dm-3

Aha! Donc, c'est /dev/dm-3.

Cependant, lorsque vous essayez de le monter, cela ne fonctionne pas:

$ udisksctl mount -b /dev/dm-3
Object /org/freedesktop/UDisks2/block_devices/dm_2d3 is not a mountable filesystem.

Après avoir bricolé beaucoup, j'ai découvert que je rencontrais le problème duplicate volume groups (décrit ci-dessus par @amenthes) car les commandes Sudo vgscan -v et Sudo vgdisplay affichaient deux entrées portant le même nom de groupe de volumes. Cependant, j'ai trouvé un meilleur moyen de le gérer que sa méthode (inutile de démarrer sur un LiveCD pour renommer les groupes de volumes!), Dans ce lien , que je citerai plus haut (juste au cas où le lien est cassé ...):

Si vous exécutez ls -la /dev/mapper/, vous devriez voir un luks-xxxxxx-xxxxx-xxxx ou un fichier similaire. C'est le mappage qui a été créé lorsque Ubuntu a demandé le mot de passe de cryptage avec une boîte de dialogue mais ne l'a pas ouvert (tout le dialogue a consisté à appeler luksOpen et à le mapper sur ce fichier/dev/mapper/luks-xxx). À présent:

  1. Assurez-vous que votre volume physique est disponible en exécutant la commande Sudo pvdisplay. Ce devrait être/dev/mapper/luks-xxx-que ce soit.
  2. Obtenez le uuid du volume en exécutant Sudo pvs -o +vg_uuid. L'uuid sera la valeur affichée complètement à droite, contenant 7 valeurs délimitées par des tirets. Copiez-les quelque part car nous les utiliserons à l'étape suivante. NE PAS CONFUSER DES UUIDS ET COPIER LE MAUVAIS. Copiez uniquement celui de votre périphérique actuel/dev/mapper/luks-xxx.
  3. Changez le groupe de volumes de votre ancien disque en exécutant la commande suivante Sudo vgrename UUIDOFYOURDISKHERE oldhd Vous pouvez remplacer "oldhd" par ce que vous voulez, à condition qu'il diffère du nom du groupe de volumes de votre disque actuel. Cette étape supprime le conflit avec les noms de groupe de volumes, ce qui vous permet maintenant de rendre les volumes disponibles.
  4. Exécutez la commande vgchange -a y pour rendre les volumes actifs.
  5. Créez un dossier pour un point de montage quelque part, par exemple: Sudo mkdir /media/<yourUserName>/someDir
  6. Montez-le: Sudo mount /dev/oldhd/root /mnt/oldhd.
  7. Après avoir utilisé vos fichiers, vous devez renommer votre groupe de volumes en ubuntu-vg si vous souhaitez que le volume soit toujours amorçable.
3
knocte

Pour ceux d'entre nous qui ne veulent pas utiliser un outil graphique, même pour déterminer quelle partition est chiffrée.

  • trouver des partitions chiffrées

    lsblk -lf | grep LUKS
    

    -l demande le format "list" - nous n'avons pas besoin de l'arbre
    -f nous montre aussi le nom du système de fichiers
    nous obtenons quelque chose comme

    sdc2 crypto_LUKS b09d6209-......

  • déverrouiller la partition que nous voulons (dans mon cas, /dev/sdc2)

    udisksctl unlock -b /dev/sdc2
    

    -b signifie que nous donnons le chemin à un périphérique bloc
    Après avoir entré la phrase secrète, nous obtenons une réponse affirmative avec les informations nécessaires pour l'étape suivante:

    Unlocked /dev/sdc2 as /dev/dm-6

  • montez le périphérique nouvellement créé (dm représente le gestionnaire de périphérique )

    udisksctl mount -b /dev/dm-6
    

    Encore une fois, nous obtenons une réponse affirmative avec des informations utiles:

    Mounted /dev/dm-6 at /media/g/Data.

    (g étant mon nom d'utilisateur sur ce système, Data est l'étiquette que j'ai utilisée pour cette partition)

    Il se peut que votre système de bureau/gestionnaire de fichiers ait déjà monté automatiquement le périphérique ou que vous l’ayez fait vous-même auparavant. Ensuite, vous obtenez quelque chose comme

    Error mounting /dev/dm-6: GDBus.Error:org.freedesktop.UDisks2.Error.AlreadyMounted: Device /dev/dm-6 is already mounted at '/media/g/Data'.

    Ce n'est pas un problème, vous pouvez quand même accéder aux données de la partition chiffrée.

  • accéder aux données: ls /media/g/Data
  • démontez à nouveau le périphérique (utilisez le même nom que vous avez utilisé pour le montage, la commande est unmount, notumount :-))

    udisksctl unmount -b /dev/dm-6
    

    Si l'appareil n'est pas occupé, vous obtiendrez

    Unmounted /dev/dm-6.

  • Maintenant, verrouillez à nouveau la partition (vous devez vous rappeler le nom de la partition)

    udisksctl lock -b /dev/sdc2
    

    Tu auras

    Locked /dev/sdc2.

  • éventuellement éteindre le disque externe complet

    udisksctl power-off -b /dev/sdc
    

    Avec un bureau graphique, vous pouvez obtenir une erreur ici:

    Error powering off drive: The drive in use: Device /dev/sdc3 is mounted (udisks-error-quark, 14)

    Dans ce cas, vous pouvez utiliser udisksctl pour démonter les partitions une par une jusqu'à ce que vous y arriviez. Le udisksctl power-off ne renvoie aucun message.

2
guntbert

Je suis entré dans plusieurs chemins à partir des réponses précédentes et seule une combinaison des réponses précédentes a fonctionné pour moi. Il ce que j'ai fait et ce qui s'est bien passé, et ce qui a mal tourné et ma solution de contournement.

J'ai un disque dur chiffré par LUKS que je dois monter à partir d'une clé USB de démarrage en direct pour buntu 15.1. Pour ce faire, j'ai commencé avec la commande suivante,

udisksctl unlock -b /dev/sda3

où sda3 est la partition chiffrée. Cette commande n'a pas fonctionné avec moi et je ne sais pas pourquoi, alors j'ai utilisé la commande suivante:

Sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume

cela a fonctionné avec moi et je n'ai pas eu besoin de l'installer car il était là dans le démarrage en direct.

Maintenant, j'ai besoin de monter la HD, et ce n'était pas une chose simple: j'ai essayé:

Sudo mkdir /media/my_device
Sudo mount /dev/mapper/my_encrypted_volume /media/my_device

Mais la deuxième commande n'a pas fonctionné avec moi, et je dois donc trouver un travail autour de ce qui suit:

Sudo udisksctl mount -b /dev/mapper/ubuntu--vg-root

C’était mon chemin .. mais vous pouvez utiliser le chemin dev/mapper/ubuntu puis double tabulation pour voir le reste des options. Cela a monté le disque dur en tant que:

Mounted /dev/dm-1 at /media/root/03cf6b80-fa7c-411f-90b9-42a3398529ce

Ensuite, j'ai utilisé la commande suivante pour le monter en tant que /media/my_device en procédant comme suit:

Sudo mount /dev/dm-1 /media/my_device/

qui a bien fonctionné.

en résumé

Sudo cryptsetup luksOpen /dev/sda1 my_encrypted_volume
Sudo mkdir /media/my_device
Sudo udisksctl mount -b /dev/mapper/ubuntu--vg-root
Sudo mount /dev/dm-1 /media/my_device/
2
aibrahim

Vous pouvez le monter en deux étapes et j'ai un exemple de script.

Note: le service udiskctl montera les choses sous/media, il est plus conçu pour les utilisateurs de bureau qui montent des clés USB. Si vous souhaitez monter le périphérique ailleurs, ce n'est pas la solution que vous recherchez.

Voici ce que j'ai travaillé. Dans cet exemple, mon périphérique chiffré est une partition créée avec lvm, mais cela n'a pas vraiment d'importance. C'est une partition au format ext4. Dans sa forme cryptée, il vit à

/dev/myvg/opt1 

une partition chiffrée est "ouverte" (déchiffrée) comme ceci

  STEP 1:  Sudo cryptsetup luksOpen /dev/myvg/opt1 opt1_opened

(c'est ici que vous entrez la phrase secrète)

le dernier argument est une référence temporaire au périphérique bloc décrypté. Le "mappage" disparaît lorsque vous redémarrez afin que vous puissiez choisir un nom différent à chaque fois, si vous le souhaitez.

il est maintenant visible en tant que périphérique:

ls /dev/mapper
control  myvg-opt1  myvg-root  opt1_opened

Vous pouvez monter ce périphérique: nous avons maintenant un périphérique ext4. Pour que ce soit pratique, ajoutez une ligne dans/etc/fstab

/dev/mapper/opt1_opened /opt1   ext4    noauto,users    0       0

et indiquez le point de montage (dans mon cas: Sudo mkdir /opt1, puis configurez les autorisations à votre guise). Si vous avez utilisé le nom opt1_opened à l'étape 1, vous devez procéder à la deuxième étape pour le monter:

STEP 2: mount /opt1   #the fstab line lets users mount, so no need for Sudo

et c'est monté.

Par conséquent, un script bash:

#!/bin/bash
#needs to be run Sudo
read -s -p "Enter LUKS password: " luks_password
printf $luks_password | cryptsetup luksOpen /dev/myvg/opt1 opt1_opened --key-file -
Sudo -u tim mount /opt1
1
Tim Richardson

Sur mon Chromebook avec (Croûton) Ubuntu Xenial 16.04, je trouve que lorsque je publie:

Sudo cryptsetup luksOpen/dev/sda1 mon_encrypted_volume

selon la publication ci-dessus et entrez ma phrase secrète, je reçois le message "Aucune clé disponible avec cette phrase secrète". Cependant, par accident, j'ai trouvé (et c'est très étrange!) Tout fonctionne quand j'ajoute "--debug" à la commande cryptsetup! Je peux ensuite monter le volume et accéder aux fichiers.

Demander au gestionnaire de fichiers Thunar de réaliser les résultats de montage "Non autorisé à effectuer l'opération." Erreur. Je suis incapable de trouver un moyen de contourner cela, mais comme je peux faire le montage en ligne de commande, c'est un peu acceptable.

0
yawlhoo

Je cherchais le même ...

Les étapes mkdir ont été ma raison de chercher plus loin. J'ai également modifié policykit pour permettre à mon utilisateur de monter sans demander au préalable le mot de passe root, puis le mot de passe du volume chiffré. Le Sudo était donc trop volé.

Ma solution que j'ai trouvée consistait à utiliser gvfs-mount à partir du paquet gvfs-bin. Maintenant, avec un gvfs-mount -d /dev/sda7 on ne me demande que le mot de passe crypté et il est monté sous /media/VOLUME_LABEL.

0
user70767

Ok, donc j'ai une solution de travail les gars, comme expliqué précédemment, la raison pour laquelle vous obtenez l'erreur mount: unknown filesystem type 'LVM2_member' est que, par défaut, votre machine Linux attribue le même nom VG à un disque dur externe; toutes les partitions du disque dur externe sont donc inactives.

Voici ce que vous devez faire:

  1. débranchez votre disque dur externe et prenez note de votre UUID VG interne en utilisant (Sudo vgdisplay command),
  2. maintenant, branchez votre disque dur externe et renommez le groupe VG de votre disque dur externe (pas interne, cela cassera votre boîte) (vgrename UUID_Number [new-group]).
  3. Vérifiez que le nouveau nom est mis à jour dans VGdiplay, activez maintenant le nouveau groupe VG (vgchange [new_group] -a y), vérifiez que toutes les partitions sont activées (lvscan).
  4. Maintenant, vous devriez voir toutes vos partitions sous ls /dev/mapper/[new_group], tout ce que vous avez à faire est de monter la partition (mount -t ext4 /dev/mapper/[new_group]-data /zez)
0
Zareena Shinwari