मैंने पाया कि दौड़ना 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
, जो कि आपके द्वारा अपेक्षित कम से कम दो हस्ताक्षरों का प्रिंट आउट होना चाहिए।
ecryptfs-recover-private
माउंट (2) त्रुटि आउटपुट के दौरान एक वर्कअराउंड है । चलाने की कोशिश करेंsudo ecryptfs-manager
, 4 दबाएं (बाहर निकलें), फिर मूल को फिर से चलाएंecryptfs-recover-private
। अब काम करना चाहिए