Ben çalışan sudo bash
ve daha sonra ecryptfs-recover-private
(sudo yerine) kök olarak çalışan bulundu . Neden farklı olması gerektiğinden emin değilim.
Düzenle:
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
Bir komut istemi görmezsiniz ve yukarıdaki komutun içine kör giriş şifrenizi yazmanız gerekir.
Yerine aaaaaaaaaaaaaaaa
ve bbbbbbbbbbbbbbbb
amacıyla yukarıda çıkışı, gelen parantez arasındaki heks imza ile gösterilmiştir:
# 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
Hazırlıklar
Kök benim için güvenilir bir şekilde çalışmadığı için koşuyor gibi görünüyor; bazen oldu, bazen olmadı. Temel olarak, ecryptfs buggy ve oldukça kullanıcı dostu görünüyor, genellikle giriş şifrelerini karıştırıyor ve parolaları bağlıyor. Derin, karanlık bir tavşan deliğinden sonra, yardımcı olması gereken bazı ipuçları var. Bu notlar Ubuntu 17.10, ecryptfs-utils 111-0 içindir ve başlamadan önce root olmanız gerekir. Ana dizininizi /mnt/crypt
(önceden monte edilmesi gerekir) ile (önceden monte edilmesi gereken) bağlamak /mnt/plain
istediğinizi user
ve kullanıcı adı ile değiştireceğinizi varsayıyorum .
Kolay Başlayın
Denenecek ilk şey:
# ecryptfs-recover-private /mnt/crypt/.ecryptfs/user/.Private
Bu işe yararsa, şanslısınız. Değilse, mount
yaklaşık bir hata mesajı verebilir no such file or directory
. Bu son derece yanıltıcıdır: gerçekte anlamı, parolanızın yanlış veya eksik olmasıdır.
İmzaları Alın
İşte önemli kısmı: ecryptf'lerin gerçekten doğru montaj parola (lar) ını gerçekten denediğini doğrulamamız gerekiyor. Ecryptfs dosya sisteminizi bağlayabilmesi için parolaların Linux çekirdeğine yüklenmesi gerekir. ecryptfs çekirdekten imzalarını ister. İmza 16 baytlık bir onaltılık değerdir (ve kriptografik olarak hassas değildir). Ecryptfs'nin beklediği parola imzalarını bulabilirsiniz:
# cat /mnt/crypt/.ecryptfs/user/.ecryptfs/Private.sig
aaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbb
Bunları hatırla. Amaç, çekirdeğe yüklenen bu imzalarla parolalar elde etmek ve daha sonra ecryptfs'e bunları kullanmasını söylemek. İlk imza ( aaaaaaaaaaaaaaaa
) veriler içindir ve ikincisi ( bbbbbbbbbbbbbbbb
) DosyaAdı Şifreleme Anahtarı'dır (FNEK).
Bağlama parolasını alın
Bu komut sizden giriş şifrenizi (yanıltıcı bir istemle) isteyecek ve mount parolanızı çıktı verecektir :
# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase
Bunu kopyalayın ama dikkatli olun !! , bu kriptografik olarak son derece hassas olduğundan, krallığın anahtarları.
Etkileşimli montajı deneyin
Denenecek bir sonraki şey:
# mount -t ecryptfs /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
Buradaki en önemli şey, kopyaladığımız ( mount
süper hassas) mount parolanıza (giriş şifrenize değil ) ihtiyaç duymasıdır .
Bu size bazı sorular soracaktır ve evet demeniz dışında varsayılanları kabul edebilirsiniz Enable filename encryption
. Size bir uyarı verebilir ve imzaları önbelleğe almanızı isteyebilir; ikisine de evet diyebilirsiniz, ancak doğru takma parolasına sahip olup olmadığınızı iki kez kontrol edin.
Sizin mount
için denemeye karar veren seçenekleri göreceksiniz:
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
İmzalar yanlışsa (aldıklarınızla eşleşmeyin Private.sig
), montaj çalışmaz.
... ama bunu çok yararsızca rapor edecek. ls /mnt/plain
Emin olmak için bir dosya yapmalı ve bir dosya yapmalısınız. Bu noktada /var/log/syslog
, ecryptf'lerin aynı imzaları aradığına bakabilir ve doğrulayabilirsiniz.
Burada ecryptf'lerle ilgili iki ciddi sorun var ve bunlar üzerinde çalışmak zorundayız.
Anahtarları çekirdeğe yükleyin
Etkileşimli bağlama yardımcı olmadıysa, tuşları kendimize çekirdeğe yüklememiz ve bağlama seçeneklerinde el ile belirtmemiz gerekir.
# ecryptfs-add-passphrase --fnek
Ve yukarıdan kopyalanan (süper senstive) mount parolanızı yapıştırın . Bu çıktı:
Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring
Manuel olarak monte edin
Şimdi parolalar çekirdeğe yüklenir ve sadece bunları kullanmak için mount'a söylememiz gerekir:
# 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
Seçeneklerin etkileşimli bağlantının yazdırdıklarına benzediğini fark edeceksiniz, ancak ecryptfs'e ne olduğunu elle anlatıyoruz.
Umarım bu işe yarar. Değilse, anahtarların çekirdeğe doğru imzalarla yüklendiğini kontrol edebilirsiniz keyctl list @u
; bu, en azından beklediğiniz iki imzayı yazdırmalıdır.
ecryptfs-recover-private
bir mount (2) hatası çıkardığında bir geçici çözüm vardır . çalıştırmayı deneyinsudo ecryptfs-manager
, 4 (çıkış) tuşuna basın, ardından orijinali tekrar çalıştırınecryptfs-recover-private
. şimdi çalışmalı