マウント:暗号化されたリカバリでそのようなファイルまたはディレクトリはありません


12

Mint Linuxのインストールを破棄しました。リモートストアフロントにアクセスしたいだけです。つまり、ホームディレクトリにあるICEauthorityファイルで問題が発生したのです。そのため、インターネットでさまざまな指示に従って、ホームディレクトリを再帰的にchmod 755に設定して、そのファイルが機能するようにできるという結論に達しました。最終的に、システムの読み込みで問題が発生しました。最終的に、ホームディレクトリをrootの実行権限に設定することで、読み取り/書き込みアクセスを取得できましたが、その後、マシンをリセットしました。-システムはICEauthorityで同じエラーをスローしますが、ディスクが暗号化されているため、OSにアクセスすることはありません。私が試したことは何も機能していないようで、元のマウンティングシードがありません。

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

仮想マシンに保存されている重要なファイルがそこにあったので、本当に心配しています...それらのファイルにたどり着くことができれば、セットアップをやり直してやり直す心配はありません

回答:


13

実行してsudo bashから、ecryptfs-recover-private(sudoではなく)rootとして実行すると機能することがわかりました。なぜ違うのかわからない。

編集:

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

プロンプトは表示されず、上記のコマンドにログインパスワード(blind)を入力する必要があります。

交換aaaaaaaaaaaaaaaa及びbbbbbbbbbbbbbbbbために、以下上記の出力から、括弧の間に六角署名付き:

# 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

予選

私にとってrootは確実に機能しなかったので、それはただ実行されていることがわかりました。時々それはしました、時にはしませんでした。基本的に、ecryptfsはバグが多く、非常にユーザーフレンドリーではないようです。ログインパスワードとマウントパスフレーズを混乱させることがよくあります。深くて暗いうさぎの穴を下った後、私は役立ついくつかのヒントを持っています。これらのノートはUbuntu 17.10、ecryptfs-utils 111-0に関するものであり、開始する前にrootになる必要があります。/mnt/crypt(すでにマウントされているはずの)ホームディレクトリをにマウントし、ユーザー名に/mnt/plain置き換える必要があると仮定しますuser

簡単に始める

最初に試すことは:

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

これがうまくいけば、幸運です。そうでない場合は、mount約からエラーメッセージが表示されることがありno such file or directoryます。これは非常に誤解を招く可能性があります。実際に意味することは、マウントパスフレーズが間違っているか欠落しているということです。

署名を取得する

ここで重要な部分です。ecryptfsが実際に正しいマウントパスフレーズを試行していることを確認する必要があります。ecryptfsがファイルシステムをマウントする前に、パスフレーズをLinuxカーネルにロードする必要があります。ecryptfsはカーネルに署名によってそれらを要求します。署名は16バイトの16進値です(暗号化の影響を受けません)。ecryptfsが期待しているパスフレーズ署名を見つけることができます:

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

これらを覚えておいてください。目標は、これらの署名を含むパスフレーズをカーネルにロードし、ecryptfsにそれらを使用するように伝えることです。最初の署名(aaaaaaaaaaaaaaaa)はデータ用で、2番目の署名()はbbbbbbbbbbbbbbbbFileName暗号化キー(FNEK)です。

マウントパスフレーズを取得する

次のコマンドは、ログインパスワードを要求し(誤解を招くプロンプトを表示)、マウントパスフレーズを出力します。

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

これをコピーしますが、注意してください!! 、これは非常に暗号的に敏感なので、王国への鍵です。

インタラクティブなマウントを試す

次に試すことは:

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

ここで重要なことはmount、(ログインパスワードではなく)先ほどコピーした(非常に機密性の高い)マウントパスフレーズが必要であることです。

これにより、いくつかの質問が表示され、「はい」と答える以外はデフォルト受け入れることができますEnable filename encryption。警告が表示され、署名をキャッシュするように求められる場合があります。両方に「はい」と言ってもかまいませんが、正しいマウントパスフレーズがあることを再確認してください。

mount試してみることにしたオプションが表示されます。

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

シグニチャーが間違っている場合(から取得したものと一致しない場合Private.sig)、マウントは機能しません。

...しかし、それはそうしたことを非常に役に立たないように報告するでしょう。あなたは何をする必要がありますls /mnt/plainことを確認すると猫のファイルを。この時点で/var/log/syslog、ecryptfsが同じ署名を探しているかどうかを調べて確認することもできます。

ここにecryptfsには明らかに2つの深刻な問題があり、それらを回避する必要があります。

カーネルにキーをロードする

対話型マウントが役に立たなかった場合は、キーをカーネルに自分でロードし、マウントオプションで手動で指定する必要があります。

# ecryptfs-add-passphrase --fnek

そして、上からコピーした(超機密の)マウントパスフレーズを貼り付けます。これは出力するはずです:

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

手動でマウント

これで、パスフレーズがカーネルに読み込まれ、mountにそれらを使用するように指示するだけです。

# 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

オプションは、インタラクティブマウントが出力したものと似ていますが、ecryptfsに手動で何が起こっているのかを伝えている点が異なります。

うまくいけばこれはうまくいきます。そうでない場合は、を使用して、キーが正しい署名とともにカーネルにロードされていることを確認できますkeyctl list @u。これにより、少なくとも2つの署名が期待されているはずです。


4
ecryptfs-recover-private出力がmount(2)エラーを出力する場合の回避策があります。実行してsudo ecryptfs-manager4(終了)を押してから、元のを再度実行してくださいecryptfs-recover-private。今すぐ機能するはずです
ulkas

1
@ulkasこれが機能する理由は何ですか?
Turion 2018年

2
@Turion私は解決策をググったので、発明者ではありません。私の推測ではecryptfs、いくつかのバージョンからバグがあり、マネージャーを呼び出すと、後でmountによって再利用されるいくつかの変数が設定されるだけです。
ulkas 2018

1
keyctl link @u @s私にとっては非常に簡単な解決策でした。クレジットはここに行く:bugs.debian.org/cgi-bin/bugreport.cgi?bug=870126
SUP

私の問題はおそらくオリジナルのポスターとは異なっていました。
supの

1

このQ&Aの将来の視聴者へ:根本的な理由が異なるため、同じ明らかな症状が発生する可能性があります。症状は次のようになります。

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

私の場合、この答えが解決策の鍵を握っていました。問題は、TmuxセッションでSSHを介してすべてをリモートで実行しようとしていたことです。これは、次の行で制限されていました/etc/pam.d/sshd

session    optional     pam_keyinit.so force revoke

前述の回答は、その行をコメントアウトして、新しいセッションで再試行することを提案しています。

私の場合に機能した簡単な回避策は、SSHとTmuxを完全に回避して、ロケーションで実行することでした。より複雑な回避策(これは確認していません)は、conspyなどを使用して、リモートで無制限の端末にアクセスすることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.