Mint Linuxのインストールを破壊しました。遠隔店にのみアクセスしたいです。それで起こったことは、私のホームディレクトリのICEauthorityファイルに問題があるということです。そのため、インターネットのさまざまなガイドラインに従って、ホームディレクトリを再帰的にchmod 755として実行して、ファイルが機能するようにすることができるという結論に達しました。最終的にシステムロードの問題が発生しました。結局、ホームディレクトリをrootとして実行可能にすることで、読み取り/書き込みアクセス権を取得できました。ところで、パソコンをリセットしました。ああ、なぜああ、コンピュータをリセットしたのですか! - システムでICEauthorityと同じエラーが発生しますが、ディスクが暗号化されているため、OSに入ることができません。私が試したものはうまくいかないようで、元のインストールシードもありません。私もsudo ecryptfs-recover-privateを試しましたが、私のシステムではそのようなファイルやディレクトリがないと言います。
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].
仮想マシンに重要なファイルが保存されているので本当に心配です...そのファイルにアクセスできる場合は、設定を解除して再起動するのに問題はありません。
答え1
sudo bash
最初に実行してから、ecryptfs-recover-private
sudoを介さずにrootとして実行することが効果的であることがわかりました。なぜ違うのか分かりません。
編集する:
簡単に言うと:
# 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
プロンプトは表示されず、上記のコマンドにログインパスワードを盲目的に入力する必要があります。
aaaaaaaaaaaaaaaa
下の合計をbbbbbbbbbbbbbbbb
上の出力の角かっこの間の16進署名に順番に置き換えます。
# 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はバグが多く、ユーザーフレンドリーではなく、しばしばログインパスワードとマウントパスワードを混同するようです。深くて暗いウサギのカキを降りた後に役立ついくつかのヒントがあります。このガイドラインは、Ubuntu 17.10、ecryptfs-utils 111-0 に関するものです。始める前にルートでなければなりません。私は/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番目の署名(bbbbbbbbbbbbbbbb
)はファイル名暗号化キー(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
手動インストール
これで、パスフレーズがカーネルにロードされたので、マウントにそれを使用するように指示します。
# 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つの署名が印刷されます。
答え2
この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
セッションで再試行するよう提案しましたが、私にはうまくいきませんでした。動作する簡単な解決策は、現場で実行し、SSHとTmuxを完全に回避することです。
修正する:
深いインスピレーションを受けたこの回答、次を使用して、TmuxセッションでSSH経由で接続している間に、以前の暗号化されたホームディレクトリをマウントできました。
古いルートパーティション(/home/
以前の場所)がマウントされていると仮定すると、/mnt/oldroot/
古いユーザー名は次のようになりますolduser
。
mkdir -p ~/.ecryptfs
echo "/mnt/oldroot/home/.ecryptfs/olduser/.Private /mnt/oldroot/home/olduser ecryptfs" > ~/.ecryptfs/oldhome.conf
cp -a /mnt/oldroot/home/.ecryptfs/olduser/.ecryptfs/Private.sig ~/.ecryptfs/oldhome.sig
# This will prompt for the old login password:
ecryptfs-insert-wrapped-passphrase-into-keyring /mnt/oldroot/home/.ecryptfs/olduser/.ecryptfs/wrapped-passphrase
# This will mount the old decrypted home contents over /mnt/oldroot/home/olduser:
mount.ecryptfs_private oldhome