Saya menemukan bahwa menjalankan sudo bash
dan kemudian menjalankan ecryptfs-recover-private
sebagai root (bukan melalui sudo) berhasil. Tidak yakin mengapa harus berbeda.
Edit:
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
Anda tidak akan melihat prompt dan harus mengetikkan kata sandi login Anda, blind, ke dalam perintah di atas.
Ganti aaaaaaaaaaaaaaaa
dan di bbbbbbbbbbbbbbbb
bawah ini dengan tanda tangan hex antara tanda kurung dari output di atas, dalam urutan:
# 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
Persiapan
Ternyata hanya berjalan karena root tidak bekerja dengan baik untuk saya; terkadang itu terjadi, kadang tidak. Pada dasarnya, ecryptfs tampaknya buggy dan sangat tidak ramah pengguna, seringkali membingungkan kata sandi login dan me-mount frasa sandi. Setelah menuruni lubang kelinci yang dalam dan gelap, saya punya beberapa tips yang bisa membantu. Catatan ini untuk Ubuntu 17.10, ecryptfs-utils 111-0, dan Anda harus menjadi root sebelum memulai. Saya berasumsi Anda ingin me-mount direktori home Anda dari /mnt/crypt
(yang seharusnya sudah di-mount) ke /mnt/plain
, dan Anda harus mengganti user
dengan nama pengguna.
Mulai dengan Mudah
Hal pertama yang harus dicoba adalah:
# ecryptfs-recover-private /mnt/crypt/.ecryptfs/user/.Private
Jika ini berhasil, Anda beruntung. Jika tidak, mungkin memberikan pesan kesalahan dari mount
sekitar no such file or directory
. Ini sangat menyesatkan: artinya adalah kata sandi mount Anda salah atau hilang.
Dapatkan Tanda Tangan
Inilah bagian yang penting: kita perlu memverifikasi ecryptfs benar-benar mencoba kata sandi pemasangan yang tepat. Frasa sandi harus dimuat ke dalam kernel Linux sebelum ecryptfs dapat me-mount sistem file Anda. ecryptfs meminta kernel dengan tanda tangan mereka. Tanda tangan adalah nilai hex 16-byte (dan tidak sensitif secara kriptografi). Anda dapat menemukan tanda tangan frasa sandi yang diharapkan ecryptfs:
# cat /mnt/crypt/.ecryptfs/user/.ecryptfs/Private.sig
aaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbb
Ingat ini. Tujuannya adalah untuk mendapatkan frasa sandi dengan tanda tangan ini dimuat ke dalam kernel dan kemudian memberitahu ecryptfs untuk menggunakannya. Tanda tangan pertama ( aaaaaaaaaaaaaaaa
) adalah untuk data, dan yang kedua ( bbbbbbbbbbbbbbbb
) adalah Kunci Enkripsi FileName (FNEK).
Dapatkan frasa sandi pemasangan
Perintah ini akan meminta Anda untuk memasukkan kata sandi login Anda (dengan prompt yang menyesatkan), dan mengeluarkan frasa sandi mount Anda :
# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase
Salin ini tapi hati-hati !! , karena ini sangat sensitif secara kriptografis, kunci menuju kerajaan.
Coba pemasangan interaktif
Hal selanjutnya yang harus dicoba adalah:
# mount -t ecryptfs /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
Yang penting di sini adalah yang mount
membutuhkan frasa sandi pemasangan Anda (sangat sensitif) yang baru saja kami salin (bukan kata sandi login Anda).
Ini akan menanyakan beberapa pertanyaan kepada Anda, dan Anda dapat menerima default kecuali mengatakan ya untuk Enable filename encryption
. Ini mungkin memberi Anda peringatan dan meminta untuk menyimpan tanda tangan; Anda bisa mengatakan ya untuk keduanya, tetapi periksa kembali apakah Anda sudah mendapatkan kata sandi pemasangan yang benar.
Anda akan melihat opsi yang mount
telah memutuskan untuk mencoba untuk Anda:
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
Jika tanda tangan salah (tidak cocok dengan yang Anda dapatkan Private.sig
), mount tidak akan berfungsi.
... tapi itu akan sangat membantu melaporkan itu. Anda harus melakukan ls /mnt/plain
dan cat file untuk memastikan. Pada titik ini Anda juga dapat melihat /var/log/syslog
dan memverifikasi bahwa ecryptf sedang mencari tanda tangan yang sama dengan kami.
Jelas ada dua masalah serius dengan ecryptfs di sini, dan kami harus mengatasinya.
Masukkan kunci ke dalam kernel
Jika pemasangan interaktif tidak membantu, kami harus memuat sendiri kunci ke kernel dan menentukannya secara manual dalam opsi pemasangan.
# ecryptfs-add-passphrase --fnek
Dan rekatkan frasa sandi pemasangan Anda (super-senstive) yang disalin dari atas. Ini akan menghasilkan:
Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring
Pasang secara manual
Sekarang frasa sandi dimuat ke dalam kernel, dan kita hanya perlu memberi tahu mount untuk menggunakannya:
# 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
Anda akan melihat opsinya mirip dengan apa yang dipasang oleh pemasangan interaktif, kecuali kami memberi tahu ecryptf secara manual apa yang terjadi.
Semoga ini berhasil. Jika tidak, Anda dapat memeriksa apakah kunci-kunci tersebut dimuat ke dalam kernel dengan menggunakan tanda tangan yang benar keyctl list @u
, yang akan mencetak setidaknya dua tanda tangan yang Anda harapkan.
ecryptfs-recover-private
output kesalahan mount (2). coba jalankansudo ecryptfs-manager
, tekan 4 (keluar), lalu jalankan lagi yang asliecryptfs-recover-private
. harus bekerja sekarangecryptfs
dari beberapa versi dan memanggil manajer cukup menetapkan beberapa variabel yang kemudian digunakan kembali oleh mount.any ide bagaimana mengotomatisasi ini sehingga saya dapat me-mount folder saya setelah setiap reboot?keyctl link @u @s
adalah solusi yang sangat sederhana bagi saya. Penghargaan ada di sini: bugs.debian.org/cgi-bin/bugreport.cgi?bug=870126Bagi pemirsa yang akan datang dari T&J ini: gejala nyata yang sama mungkin disebabkan oleh berbagai alasan mendasar. Gejalanya seperti:
Dalam kasus saya, jawaban ini memegang kunci solusi. Masalahnya adalah saya mencoba melakukan semuanya dari jarak jauh melalui SSH dalam sesi Tmux, yang dibatasi oleh baris berikut di
/etc/pam.d/sshd
:Jawaban yang disebutkan di atas menyarankan untuk mengomentari garis yang keluar dan coba lagi dalam sesi baru.
Solusi sederhana yang berhasil dalam kasus saya adalah melakukannya di lokasi, menghindari SSH dan Tmux sama sekali. Solusi yang lebih rumit (yang belum saya verifikasi) adalah menggunakan sesuatu seperti conspy untuk mendapatkan akses ke terminal tak terbatas dari jarak jauh.
sumber