mount: Şifreli kurtarmaya sahip böyle bir dosya veya dizin yok


12

Mint Linux kurulumumu yok ettim. Uzaktaki mağazama erişmek istedim. Yani, ev dizinimdeki ICEauthority dosyasıyla ilgili sorun yaşıyordum. Bu yüzden internette farklı yönleri izleyerek ben bu dizinin çalışmasına izin vermek için giriş dizini özyinelemeli chmod 755 için ayarlayabileceği sonucuna vardım ... sonunda sistem yükleme ile ilgili sorunlar ile karşılaştım. Sonunda ana dizini root için yürütülebilir izin olarak ayarlayarak okuma / yazma erişimi elde edebildim… ama sonra makinemi sıfırlarım neden oh neden makinemi sıfırladım !!! - şimdi sistem bana ICEauthority ile aynı hatayı atıyor ama disk şifreli olduğu için beni asla işletim sistemine sokmuyor. Denediğim hiçbir şey işe yaramıyor ve orijinal montaj tohumuna sahip değilim.

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

Gerçekten endişeliyim çünkü orada sanal bir makinede saklanan önemli dosyalarım vardı… Eğer bu dosyalara ulaşabilirsem, kurulumu nuking ve baştan başlayarak hiçbir sorunum olmazdı

Yanıtlar:


13

Ben çalışan sudo bashve 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 aaaaaaaaaaaaaaaave bbbbbbbbbbbbbbbbamacı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/plainistediğinizi userve 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, mountyaklaşı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 ( mountsü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 mountiç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/plainEmin 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.


4
ecryptfs-recover-privatebir mount (2) hatası çıkardığında bir geçici çözüm vardır . çalıştırmayı deneyin sudo ecryptfs-manager, 4 (çıkış) tuşuna basın, ardından orijinali tekrar çalıştırın ecryptfs-recover-private. şimdi çalışmalı
ulkas

1
@ulkas Bunun neden çalıştığı hakkında bir fikriniz var mı?
Turion

2
@ Turion ben çözüm googled, bu yüzden mucit değilim. tahminim ecryptfsbazı sürümü kadar bir hata var ve yönetici çağırmak sadece mount.any tarafından yeniden kullanılan bazı değişkenler ayarlar her bir yeniden başlatmadan sonra klasörlerimi monte böylece nasıl otomatikleştirmek için bir fikir?
ulkas

2
keyctl link @u @sbenim için çok basit bir çözümdü. Katkıda bulunanlar
sup

Benim sorunum muhtemelen orijinal posterden farklı olmasına rağmen.
sup

1

Bu soru ve cevapların gelecekteki izleyicilerine: Aynı belirgin semptom farklı altta yatan nedenlerden kaynaklanabilir. Belirti şuna benzer:

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

Benim durumumda, bu cevap çözümün anahtarını tuttu. Sorun şu ki, Tmux oturumunda SSH üzerinden uzaktan her şeyi yapmaya çalışıyordum, bu da aşağıdaki satırla sınırlıydı /etc/pam.d/sshd:

session    optional     pam_keyinit.so force revoke

Yukarıda bahsi geçen cevap, bu hattın yorumlanıp yeni bir oturumda tekrar denenmesini önermektedir.

Benim durumumda çalışan basit geçici çözüm, SSH ve Tmux'dan tamamen kaçınarak, yerinde yapmaktı. Daha karmaşık bir çözüm (doğrulamamıştım) uzaktan sınırsız bir terminale erişmek için conspy gibi bir şey kullanmaktır .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.