mount: Nenhum arquivo ou diretório com recuperação criptografada

4

Eu destruí minha instalação do Mint Linux. Eu só queria acessar minha loja remota. Então, o que aconteceu foi que eu estava tendo problemas com o arquivo ICEauthority no meu diretório pessoal. Seguindo direções diferentes na internet, cheguei à conclusão de que poderia configurar o diretório home recursivamente para o chmod 755 para permitir que o arquivo funcionasse… eventualmente, tive problemas com o carregamento do sistema. Eventualmente, definindo o diretório home para a permissão executável para o root, eu consegui obter acesso de leitura / gravação… mas então eu reiniciei minha máquina, oh, por que, oh, por que eu reiniciei minha máquina !!! - agora o sistema me lança o mesmo erro com a autoridade do ICE, mas nunca me coloca no sistema operacional porque o disco está criptografado. Nada que eu tentei parece funcionar e eu não tenho a semente de montagem original. Eu também tentei o sudo ecryptfs-recover-private, mas meu sistema simplesmente diz "Nenhum arquivo ou diretório":

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].

Estou muito preocupado porque tinha arquivos importantes que estavam armazenados em uma máquina virtual ... Se eu pudesse acessar esses arquivos, não teria problemas com a configuração e começar de novo

    
por Frankenmint 26.05.2016 / 01:06

1 resposta

4

Descobri que executar sudo bash e, em seguida, executar ecryptfs-recover-private como raiz (em vez de via sudo) funcionou. Não tenho certeza por que deveria 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

Você não verá um prompt e deverá digitar sua senha de login, blind, no comando acima.

Substitua os aaaaaaaaaaaaaaaa e bbbbbbbbbbbbbbbb abaixo pelas assinaturas hexadecimais entre parênteses da saída acima, por ordem:

# 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

Acontece que apenas executando como root não funcionou de forma confiável para mim; às vezes, às vezes não. Basicamente, o ecryptfs parece cheio de bugs e bastante hostil ao usuário, muitas vezes confundindo senhas de login e senhas de montagem. Depois de descer um buraco de coelho escuro e profundo, tenho algumas dicas que devem ajudar. Estas notas são para o Ubuntu 17.10, ecryptfs-utils 111-0, e você deve se tornar root antes de começar. Suponho que você queira montar seu diretório pessoal de /mnt/crypt (que já deve estar montado) para /mnt/plain e você deve substituir user pelo nome de usuário.

Comece fácil

A primeira coisa a tentar é:

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

Se isso funcionar, bem, você tem sorte. Caso contrário, poderá fornecer uma mensagem de erro de mount sobre no such file or directory . Isso é extremamente enganador: o que realmente significa é que sua senha de montagem está errada ou faltando.

Obtenha as assinaturas

Aqui está a parte importante: precisamos verificar se o ecryptfs está realmente tentando a (s) senha (s) de montagem correta (s). As passphrases devem ser carregadas no kernel do Linux antes que o ecryptfs possa montar seu sistema de arquivos. O ecryptfs pede o kernel para eles por sua assinatura. A assinatura é um valor hexadecimal de 16 bytes (e não é criptograficamente sensível). Você pode encontrar as assinaturas de frase secreta que o ecryptfs está esperando:

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

Lembre-se disso. O objetivo é obter senhas com essas assinaturas carregadas no kernel e, então, dizer ao ecryptfs para usá-las. A primeira assinatura ( aaaaaaaaaaaaaaaa ) é para os dados e a segunda ( bbbbbbbbbbbbbbbb ) é a Chave de Criptografia do Nome de Arquivo (FNEK).

Obter a frase secreta de montagem

Este comando irá pedir-lhe a palavra-passe login (com um aviso enganador) e produzirá a sua senha mount :

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

Copie isso, mas tenha cuidado !! , pois isso é extremamente sensível a criptografia, as chaves do reino.

Experimente uma montagem interativa

A próxima coisa a tentar é:

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

O ponto crucial aqui é que mount precisa de sua (super-sensível) frase secreta de montagem que acabamos de copiar (não sua senha de login).

Isso fará algumas perguntas, e você poderá aceitar os padrões exceto dizer sim para Enable filename encryption . Pode lhe dar um aviso e pedir para armazenar as assinaturas em cache; você pode dizer sim a ambos, mas verifique se você tem a senha de montagem correta.

Você verá as opções que mount decidiu experimentar para você:

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 as assinaturas estiverem erradas (não coincide com o que você obteve em Private.sig ), a montagem não funcionará.

... mas será muito inútil informar que aconteceu. Você terá que fazer um ls /mnt/plain e catar um arquivo para ter certeza. Neste ponto, você também pode procurar em /var/log/syslog e verificar se o ecryptfs está procurando as mesmas assinaturas que nós.

Existem claramente dois problemas sérios com ecryptfs aqui, e temos que contorná-los.

Carregue as chaves no kernel

Se a montagem interativa não ajudar, temos que carregar as chaves no kernel e especificá-las manualmente nas opções de montagem.

# ecryptfs-add-passphrase --fnek

E cole na (super senstive) frase de montagem copiada acima. Isso deve resultar:

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

Montar manualmente

Agora os códigos de acesso são carregados no kernel e só precisamos informar ao mount para usá-los:

# 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

Você notará que as opções são semelhantes ao que a montagem interativa imprimiu, exceto que estamos informando manualmente ao ecryptfs o que está acontecendo.

Espero que isso funcione. Caso contrário, você pode verificar se as chaves estão carregadas no kernel com as assinaturas corretas usando keyctl list @u , que deve imprimir pelo menos as duas assinaturas que você espera.

    
por 01.10.2017 / 01:25