mount: nessun file o directory con ripristino crittografato


12

Ho distrutto la mia installazione di Mint Linux. Volevo solo accedere al mio negozio remoto. Quindi quello che è successo è che ho avuto problemi con il file ICEauthority nella mia home directory. Quindi, seguendo diverse direzioni su Internet, sono giunto alla conclusione che avrei potuto impostare ricorsivamente la directory home su chmod 755 per consentire a quel file di funzionare ... alla fine ho riscontrato problemi con il caricamento del sistema. Alla fine impostando la directory home sull'autorizzazione eseguibile per root sono stato in grado di ottenere l'accesso in lettura / scrittura ... ma poi ho ripristinato la mia macchina oh perché oh perché ho ripristinato la mia macchina !!! - ora il sistema mi lancia lo stesso errore con ICEauthority ma non mi porta mai nel sistema operativo perché il disco è crittografato. Nulla di ciò che ho provato sembra funzionare e non ho il seme di montaggio originale.

frankenmint@honeybadger /home $ sudo ecryptfs-recover-private
INFO: Searching for encrypted private directories (this might take a while)...
INFO: Found [/home/.ecryptfs/frankenmint/.Private].
Try to recover this directory? [Y/n]: y
INFO: Found your wrapped-passphrase
Do you know your LOGIN passphrase? [Y/n] y
INFO: Enter your LOGIN passphrase...
Passphrase: 
Inserted auth tok with sig [979c6cdf80d2e44d] into the user session keyring
mount: No such file or directory
ERROR: Failed to mount private data at [/tmp/ecryptfs.Hy3BV96c].

Sono davvero preoccupato perché avevo lì dei file importanti che erano memorizzati su una macchina virtuale ... Se solo potessi arrivare a quei file, non avrei problemi a nuotare l'installazione e ricominciare da capo

Risposte:


13

Ho scoperto che funzionare sudo bashe poi correre ecryptfs-recover-privatecome root (piuttosto che tramite sudo) ha funzionato. Non sono sicuro del perché dovrebbe essere diverso.

Modificare:

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

Non verrà visualizzato un prompt e sarà necessario digitare la password di accesso, cieca, nel comando sopra.

Sostituisci aaaaaaaaaaaaaaaae bbbbbbbbbbbbbbbbsotto con le firme esadecimali tra parentesi dall'output sopra, in ordine:

# 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

Preliminari

Si scopre che funziona solo perché root non ha funzionato in modo affidabile per me; a volte sì, a volte no. Fondamentalmente, ecryptfs sembra difettoso e abbastanza ostile all'utente, spesso confonde le password di accesso e le passphrase di montaggio. Dopo essere sceso in una profonda tana di coniglio scuro, ho alcuni suggerimenti che dovrebbero aiutare. Queste note sono per Ubuntu 17.10, ecryptfs-utils 111-0, e dovresti diventare root prima di iniziare. Presumo che tu voglia montare la tua home directory da /mnt/crypt(che dovrebbe essere già montata) a /mnt/plain, e dovresti sostituirla usercon il nome utente.

Inizia facile

La prima cosa da provare è:

# ecryptfs-recover-private /mnt/crypt/.ecryptfs/user/.Private

Se funziona, beh, sei fortunato. In caso contrario, potrebbe essere visualizzato un messaggio di errore da mountcirca no such file or directory. Questo è estremamente fuorviante: ciò che significa veramente è che la passphrase di montaggio è errata o mancante.

Ottieni le firme

Ecco la parte importante: dobbiamo verificare che ecryptfs stia davvero provando le passphrase di mount giuste. Le passphrase devono essere caricate nel kernel Linux prima che ecryptfs possa montare il filesystem. ecryptfs chiede loro il kernel con la loro firma. La firma è un valore esadecimale di 16 byte (e non è crittograficamente sensibile). Puoi trovare le firme della passphrase che ecryptfs si aspetta:

# cat /mnt/crypt/.ecryptfs/user/.ecryptfs/Private.sig
aaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbb

Ricorda questi. L'obiettivo è ottenere passphrase con queste firme caricate nel kernel e quindi dire a ecryptfs di usarle. La prima firma ( aaaaaaaaaaaaaaaa) è per i dati e la seconda ( bbbbbbbbbbbbbbbb) è la chiave di crittografia FileName (FNEK).

Ottieni la passphrase di mount

Questo comando ti chiederà la tua password di accesso (con un prompt fuorviante) e produrrà la tua passphrase di mount :

# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase

Copia questo ma fai attenzione !! , poiché questo è estremamente crittograficamente sensibile, le chiavi del regno.

Prova un mount interattivo

La prossima cosa da provare è:

# mount -t ecryptfs /mnt/crypt/.ecryptfs/user/.Private /mnt/plain

La cosa cruciale qui è che mountrichiede la tua passphrase di montaggio (super sensibile) che abbiamo appena copiato (non la tua password di accesso).

Questo ti farà alcune domande e puoi accettare le impostazioni predefinite tranne dire di sì a Enable filename encryption. Potrebbe darti un avvertimento e chiedere di memorizzare nella cache le firme; puoi dire di sì ad entrambi, ma ricontrolla di avere la passphrase di montaggio corretta.

Vedrai le opzioni che mountha deciso di provare per te:

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

Se le firme sono errate (non corrispondono a ciò che hai ottenuto Private.sig), la montatura non funzionerà.

... ma riferirà molto inutilmente di averlo fatto. Dovrai fare un ls /mnt/plaine cat un file per essere sicuro. A questo punto puoi anche cercare /var/log/sysloge verificare che ecryptfs stia cercando le stesse firme che siamo.

Ci sono chiaramente due seri problemi con ecryptfs qui, e dobbiamo aggirarli.

Carica le chiavi nel kernel

Se il mount interattivo non ha aiutato, dobbiamo caricare noi stessi le chiavi nel kernel e specificarle manualmente nelle opzioni di mount.

# ecryptfs-add-passphrase --fnek

E incolla la tua passphrase di montaggio (super sensibile) copiata dall'alto. Questo dovrebbe produrre:

Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring

Montare manualmente

Ora le passphrase sono caricate nel kernel e dobbiamo solo dire a mount di usarle:

# 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

Noterai che le opzioni sono simili a quelle stampate dal mount interattivo, tranne per il fatto che diciamo manualmente a ecryptfs cosa succede.

Speriamo che funzioni. Altrimenti, puoi controllare che le chiavi siano caricate nel kernel con le firme corrette usando keyctl list @u, che dovrebbe stampare almeno le due firme che ti aspetti.


4
c'è una soluzione alternativa quando si ecryptfs-recover-privategenera un errore mount (2). provare a eseguire sudo ecryptfs-manager, premere 4 (esci), quindi eseguire nuovamente l'originale ecryptfs-recover-private. dovrebbe funzionare ora
Ulka il

1
@ulkas Qualche idea sul perché funzioni?
Turion,

2
@Turione Ho cercato su Google la soluzione, quindi non sono l'inventore. la mia ipotesi è che c'è un bug nella ecryptfsversione precedente e chiamando il gestore imposta semplicemente alcune variabili che vengono successivamente riutilizzate dal mount. Qualche idea su come automatizzare questo in modo da poter montare le mie cartelle dopo ogni riavvio?
Ulkas,

1
keyctl link @u @sè stata una soluzione molto semplice per me. I crediti vanno qui: bugs.debian.org/cgi-bin/bugreport.cgi?bug=870126
sup

Anche se il mio problema era probabilmente diverso dal poster originale.
sup

1

Ai futuri spettatori di queste domande e risposte: lo stesso sintomo apparente può essere causato da diverse ragioni sottostanti. Il sintomo appare come:

INFO: Found [/home/.ecryptfs/frankenmint/.Private].
Try to recover this directory? [Y/n]: y
INFO: Found your wrapped-passphrase
Do you know your LOGIN passphrase? [Y/n] y
INFO: Enter your LOGIN passphrase...
Passphrase: 
Inserted auth tok with sig [979c6cdf80d2e44d] into the user session keyring
mount: No such file or directory
ERROR: Failed to mount private data at [/tmp/ecryptfs.Hy3BV96c].

Nel mio caso, questa risposta conteneva la chiave della soluzione. Il problema era che stavo provando a fare tutto da remoto su SSH in una sessione di Tmux, che era limitata dalla seguente riga in /etc/pam.d/sshd:

session    optional     pam_keyinit.so force revoke

La risposta di cui sopra suggerisce di commentare quella linea e riprovare in una nuova sessione.

La semplice soluzione che ha funzionato nel mio caso è stata quella di farlo sul posto, evitando del tutto SSH e Tmux. Una soluzione più complicata (che non ho verificato) è quella di utilizzare qualcosa come Conspy per ottenere l'accesso a un terminale illimitato da remoto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.