मुझे नहीं लगता कि ऐसा कुछ बॉक्स के ठीक बाहर मौजूद है, लेकिन यह संभव होना चाहिए। मैं आपके लिए कुछ संदर्भ रखूंगा।
पहले वहाँ / etc / crypttab - आम तौर पर आप तीसरे स्लॉट में एक कुंजी फ़ाइल या पासवर्ड निर्दिष्ट करते हैं, लेकिन कुछ डिस्ट्रोस आपको चौथे क्षेत्र में एक विकल्प निर्दिष्ट करने की अनुमति देते हैं keyscript
(डेबियन और ओपनस्यूज़ सपोर्ट इस: http://linux.frank4dd.com /en/man5/crypttab.htm )। यह स्क्रिप्ट (जो "/ lib / cryptsetup / स्क्रिप्ट" iirc में होनी चाहिए) एक तर्क के रूप में तीसरे क्षेत्र का उपयोग कर सकती है (जो सामान्य रूप से सिर्फ कीफाइल या पासवर्ड होगा)। कीस्क्रिप्ट का काम वास्तविक डिक्रिप्शन कुंजी को स्टडआउट में भेजना है, जो क्रायसिपेटअप तब सामान्य फैशन में लुक्स कुंजी के रूप में उपयोग करता है।
दूसरा यह है कि आपको कीस्क्रिप्ट लिखने की आवश्यकता होगी। netkeyscript
(github में) एक कीस्क्रिप्ट का एक उदाहरण है जो पासवर्ड के लिए UDP मल्टीकास्ट सॉकेट पर सुनता है; यहाँ एक कस्टम कुंजी स्क्रिप्ट का एक और विस्तृत उदाहरण है, जिसमें एक कार्यान्वयन के साथ पूरा किया गया है sh
: http://wejn.org/how-to-make-passwordless-cryptsetup.html । आप कैसेस्क्रिप्ट (जिसे मैं अभी कॉल करूंगा multifactor
) को कोड करता हूं। मैं आपको एक अभ्यास के रूप में छोड़ता हूं;)
तीसरा है गुप्त विभाजन। आप एक खुले स्रोत उपकरण का उपयोग कर सकते हैं जिसे "ssss" (गूगल "ssss- विभाजन") कहा जाता है, आपके द्वारा वर्णित तरीके से ल्यूक पासवर्ड को विभाजित करने के लिए। मान लीजिए कि आप इसे 3 टुकड़ों (ए, बी, सी) में विभाजित करते हैं और उनमें से किसी 2 की आवश्यकता होती है। "a" को usb ड्राइव पर, "b" को तिजोरी में, और "c" को आप कंप्यूटर (अनएन्क्रिप्टेड पार्टीशन), या जो कुछ भी स्टोर करते हैं। बेशक, आप "ग" को उजागर नहीं करना चाहते हैं, इसलिए इसे अपनी पसंद की एक योजना के साथ एन्क्रिप्ट करें जिसे आप याद कर सकते हैं, और उस पासफ़्रेज़ को कॉल कर सकते हैं, और c0
एन्क्रिप्ट किया गया " c
" आपकी डिस्क पर है " c'
"। अब आपका crypttab कुछ इस तरह दिखेगा
root /dev/disk/<blah blah> /dev/<usb>:/path/to/a+$/dev/<blah>:/path/to/c' keyscript=multifactor
तीसरे क्षेत्र के लिए आपके पास वास्तव में क्या होगा यह इस बात पर निर्भर करेगा कि आपकी कीस्क्रिप्ट स्वीकार करने के लिए तैयार है
आदर्श रूप से कीस्क्रिप्ट यह निर्धारित करने में सक्षम होना चाहिए कि उसे आपके इनपुट को एक या अधिक कुंजियों को डिक्रिप्ट करने की आवश्यकता है (उदाहरण: c'
-> c
इस मामले में), लेकिन आप तीसरे फ़ील्ड का उपयोग वांछित के रूप में निर्दिष्ट करने के लिए कर सकते हैं। ऊपर दिए गए मेरे उदाहरण में, मैंने इसका $
संकेत देने के लिए एक अग्रणी का उपयोग किया ।
मुझे यकीन नहीं है कि अगर इनपुट के लिए कीस्क्रिप्ट को संभव बनाना संभव है, तो संभवत: stderr पर, क्योंकि stdout पर किसी भी आउटपुट को luks पासवर्ड के रूप में लिया जाता है। अच्छा होगा अगर कोई समझदार कमबैक करे।
वैसे भी, अच्छी किस्मत और खुश हैकिंग :)