माउंट: एन्क्रिप्टेड रिकवरी के साथ ऐसी कोई फ़ाइल या निर्देशिका नहीं


12

मैंने अपने मिंट लिनक्स इंस्टॉलेशन को नष्ट कर दिया है। मैं सिर्फ अपने रिमोट स्टोर के सामने पहुंचना चाहता था। तो क्या हुआ मैं अपने घर निर्देशिका में ICEauthority फ़ाइल से परेशान था। इसलिए इंटरनेट पर अलग-अलग दिशाओं के बाद मैं इस नतीजे पर पहुंचा कि मैं उस होम डायरेक्टरी को 755 पर दोबारा सेट कर सकता हूं ताकि उस फाइल को काम करने दिया जा सके ... आखिरकार मैं सिस्टम लोडिंग की समस्या में चला गया। आखिरकार होम डाइरेक्टरी को रूट के लिए एक्ज़ीक्यूटेबल अनुमति के लिए सेट करके मैं पढ़ने / लिखने की सुविधा प्राप्त करने में सक्षम था ... लेकिन फिर मैंने अपनी मशीन को रीसेट कर दिया ओह, ओह, मैंने अपनी मशीन को क्यों रीसेट किया! - अब सिस्टम मुझे 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जड़ के रूप में दौड़ना (बजाय सुडो के) काम किया। निश्चित नहीं है कि यह कोई अलग क्यों होना चाहिए।

संपादित करें:

टी एल; डॉ:

# 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नीचे आउटपुट से कोष्ठक के बीच हेक्स हस्ताक्षरों के साथ नीचे और नीचे बदलें :

# 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 बुग्याली और काफी उपयोगकर्ता-अविश्वसनीय लगते हैं, अक्सर लॉगिन पासवर्ड और माउंट पासफ़्रेज़ को भ्रमित करते हैं। एक गहरे, गहरे रंग के खरगोश के छेद के नीचे जाने के बाद, मेरे पास कुछ सुझाव हैं जिनकी मदद करनी चाहिए। ये नोट उबंटू 17.10, इकोट्रिफ़-यूटल्स 111-0 के लिए हैं, और आपको शुरू करने से पहले रूट हो जाना चाहिए। मुझे लगता है कि आप अपनी होम डायरेक्टरी को /mnt/crypt(जिसमें पहले से माउंट होना चाहिए) से माउंट करना चाहते हैं /mnt/plain, और आपको userउपयोगकर्ता नाम के साथ प्रतिस्थापित करना चाहिए ।

आसान शुरू करो

कोशिश करने वाली पहली चीज़ है:

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

यदि यह काम करता है, ठीक है, तो आप भाग्यशाली हैं। यदि नहीं, तो इसे से एक त्रुटि संदेश देता है mountके बारे में no such file or directory। यह बेहद भ्रामक है: इसका वास्तव में मतलब यह है कि आपका माउंट पासफ्रेज गलत है या गायब है।

हस्ताक्षर प्राप्त करें

यहाँ महत्वपूर्ण हिस्सा है: हमें यह सत्यापित करने की आवश्यकता है कि वास्तव में सही माउंट पासफ़्रेज़ की कोशिश कर रहे हैं। पारितंत्रों को लिनक्स कर्नेल में लोड किया जाना चाहिए, इससे पहले कि आपके फाइलसिस्टम माउंट कर सकें। ecryptfs उनके हस्ताक्षर द्वारा उनके लिए कर्नेल पूछते हैं। हस्ताक्षर एक 16-बाइट हेक्स मान है (और क्रिप्टोग्राफिक रूप से संवेदनशील नहीं है)। आप पा सकते हैं कि पासफ़्रेज़ पर हस्ताक्षर की अपेक्षा कर रहे हैं।

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

इनको याद रखो। लक्ष्य यह है कि कर्नेल में लोड किए गए इन हस्ताक्षरों के साथ पासफ़्रेज़ प्राप्त करें और फिर उन्हें उपयोग करने के लिए ecryptfs बताएं। पहला हस्ताक्षर ( aaaaaaaaaaaaaaaa) डेटा के लिए है, और दूसरा ( 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-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

आप देखेंगे कि विकल्प समान हैं कि इंटरएक्टिव माउंट प्रिंट आउट क्या है, सिवाय इसके कि हम मैन्युअल रूप से बता रहे हैं कि क्या हो रहा है।

उम्मीद है कि यह काम करता है। यदि नहीं, तो आप जाँच सकते हैं कि कुंजियों को सही हस्ताक्षर के साथ कर्नेल में लोड किया गया है keyctl list @u, जो कि आपके द्वारा अपेक्षित कम से कम दो हस्ताक्षरों का प्रिंट आउट होना चाहिए।


4
ecryptfs-recover-privateमाउंट (2) त्रुटि आउटपुट के दौरान एक वर्कअराउंड है । चलाने की कोशिश करें sudo ecryptfs-manager, 4 दबाएं (बाहर निकलें), फिर मूल को फिर से चलाएं ecryptfs-recover-private। अब काम करना चाहिए
ulkas

1
@ulkas किसी भी विचार क्यों यह काम करता है?
तूरियन

2
@ ट्यूरियन ने इस समाधान को हल कर दिया, इसलिए आविष्कारक को नहीं। मेरा अनुमान है कि ecryptfsकुछ संस्करण में बग है और प्रबंधक को कॉल करने से बस कुछ चर सेट होते हैं जो बाद में माउंट द्वारा पुन: उपयोग किए जाते हैं। यह विचार है कि इसे कैसे स्वचालित किया जाए ताकि मैं प्रत्येक रिबूट के बाद अपने फ़ोल्डर्स को माउंट कर सकूं?
ulkas

1
keyctl link @u @sमेरे लिए बहुत सरल उपाय था। क्रेडिट यहां जाएं: bugs.debian.org/cgi-bin/bugreport.cgi?bug=870126
sup

हालांकि मेरी समस्या मूल पोस्टर से शायद अलग थी।
सुपर

1

इस प्रश्नोत्तर के दर्शकों के लिए: एक ही स्पष्ट लक्षण विभिन्न अंतर्निहित कारणों से हो सकता है। लक्षण दिखता है:

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

मेरे मामले में, इस उत्तर ने समाधान की कुंजी पकड़ ली। समस्या यह थी कि मैं SSH से अधिक सब कुछ एक Tmux सत्र में करने की कोशिश कर रहा था, जो निम्नलिखित पंक्ति द्वारा सीमित था /etc/pam.d/sshd:

session    optional     pam_keyinit.so force revoke

उपर्युक्त उत्तर उस लाइन को टिप्पणी करने और नए सत्र में फिर से प्रयास करने का सुझाव देता है।

मेरे मामले में काम करने वाला सरल काम एसएसएच और टमक्स को पूरी तरह से टालना था। एक अधिक जटिल वर्कअराउंड (जिसे मैंने सत्यापित नहीं किया है) एक असीमित टर्मिनल तक पहुंच प्राप्त करने के लिए कंसपी जैसे कुछ का उपयोग करना है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.