बाईपास ssh कुंजी फ़ाइल की अनुमति की जाँच करें


29

मेरे पास एक एन्क्रिप्टेड FAT वॉल्यूम है (संगतता के लिए) जिसमें एक निजी कुंजी फ़ाइल और अन्य संवेदनशील डेटा है।

मैं अपनी निजी कुंजी का उपयोग करके एसएसएच के माध्यम से अपने सर्वर से कनेक्ट करना चाहता हूं, लेकिन निश्चित रूप से, एफएटी फ़ाइल अनुमति का समर्थन नहीं करता है, यह मेरी कुंजी को यह कहते हुए अनदेखा करता है कि इसकी अनुमति बहुत खुली है।

इसलिए वर्तमान में मैं इसे 0600 अनुमतियों के साथ अपनी हार्ड ड्राइव पर कहीं और कॉपी कर रहा हूं, इसका उपयोग कर रहा हूं और फिर इसे सुरक्षित रूप से मिटा रहा हूं, लेकिन यह एक दर्द है।

क्या यह बहुत ही ssh / scp कमांड लाइन पर अनुमति जांच को बायपास करने का एक तरीका है?

संपादित करें : परिशुद्धता: यह OS X पर एक TrueCrypt वॉल्यूम था।

समाधान पर: नीचे दिए गए स्वीकृत उत्तर ने मेरी समस्या हल कर दी (मैक ओएस एक्स के साथ ट्रू-क्रिप्ट वॉल्यूम पर स्थित एसएसएच कुंजी फ़ाइल का उपयोग करके), लेकिन यह एक वर्कअराउंड है। ऐसा लगता है कि "बायपास कुंजी फ़ाइल अनुमति जाँच" का कोई तरीका नहीं है।

जवाबों:


18

AFAIK, ssh या ssh-add के साथ कीफिले की अनुमति की जांच को बायपास करने का कोई तरीका नहीं है (और आप इसे नामित पाइप या ऐसे के साथ छल नहीं कर सकते हैं)। इसके अलावा, आप वास्तव में ssh को ट्रिक नहीं करना चाहते हैं, लेकिन सिर्फ अपनी कुंजी फ़ाइलों का उपयोग करने में सक्षम होना चाहिए।

वास्तव में, ट्रू-क्रिप्ट वॉल्यूम को आपके डेटा को निजी रखने के लिए माना जाता है, इसलिए वॉल्यूम को विश्व-पठनीय (ट्रू-क्रिप्टक्रिप्ट का डिफ़ॉल्ट व्यवहार) के रूप में माउंट करना वास्तव में इष्टतम नहीं है। यदि आप FAT- स्वरूपित मात्रा का उपयोग कर रहे हैं, तो आपको वास्तव में माउंट विकल्पों के साथ अन्याय करना चाहिए, जैसा कि डैन कार्ली ने सुझाव दिया था।

हालाँकि, माउंट विकल्प ओएस एक्स के लिए ट्रू क्रिप्ट द्वारा सही ढंग से समर्थित नहीं हैं (भले ही आप कमांड लाइन इंटरफेस का उपयोग करके टीसी लॉन्च करते हैं और मैन पेज से माउंट विकल्प - पहले से ही कोशिश की गई), ओएस एक्स वॉल्यूम के आधार पर माउंट विकल्प चूक का समर्थन करता है ।

आपको अपनी यूजर आईडी (आमतौर पर 501 अगर आप कंप्यूटर के पहले / एकमात्र उपयोगकर्ता हैं) को जानना होगा। आप इसे "आईडी -यू" के साथ प्राप्त कर सकते हैं।

"मान लें कि आप का नाम मात्रा" PRIVATE "है (मात्रा नाम राजधानियों में हैं), और आपका uid 501 है, आपको बस इतना करना है कि इस पंक्ति को / etc / fstab में जोड़ा जा रहा है:

LABEL=PRIVATE none msdos -u=501,-m=700

इस फ़ाइल को बनाने / संपादित करने के लिए आपको मूल होना चाहिए (यह डिफ़ॉल्ट OSX इंस्टॉल में मौजूद नहीं है):

sudo vim /etc/fstab

अगली बार जब आप वॉल्यूम बढ़ाते हैं, तो इसकी अनुमति 700 और स्वामी आईडी 501 होगी।

यह USB ड्राइव के साथ भी काम करता है (जो कि आमतौर पर FAT में स्वरूपित होता है)।


पूरी तरह से काम करता है
उदाहरण के लिए

मुझे इस पद्धति से सही अनुमतियां प्राप्त करने के लिए FAT- स्वरूपित वॉल्यूम नहीं मिल सका। हालांकि, "मैक ओएस एक्सटेंडेड" को चुनने और अन्य ऑपरेटिंग सिस्टम पर माउंट करने के विकल्प का चयन करने से मुझे चोद के साथ अनुमतियाँ सेट करने की अनुमति मिलती है।
खाली

यह अद्भुत काम किया। जब मैं सुरक्षित मात्रा को पार करता हूं तो मैं अपने घरेलू निर्देशिका में विशिष्ट बिंदु पर चढ़ता हूं। मैंने पाया कि मुझे माउंट पॉइंट के स्पष्ट नाम के साथ 'कोई नहीं' का मान बदलना था।
गीक

1
/etc/fstabनए OS X पर कोई फ़ाइल नहीं होने पर भी यह काम करता है। बस etc/fstabऊपर के साथ एक नई फ़ाइल बनाएं
iggie

33

स्टड से चाबी जोड़ना मेरे लिए काम किया:

cat /path/to/id_rsa | ssh-add -k -

1
ऐसा क्यों नहीं होता? यह बढ़ते बिना बॉक्स से बाहर काम करता है और आप वैसे भी एक ssh- एजेंट का उपयोग कर रहे हैं, क्या आपने नहीं किया?
12

4
एक आकर्षण की तरह काम करता है - स्वीकार किए जाते हैं ई का जवाब देना चाहिए
20

1
यह मुझे WSL उबंटू का उपयोग करके मिला। धन्यवाद!
mydoglixu

7

एक पागल वर्कअराउंड के रूप में, आप एक ext2 वॉल्यूम की डिस्क छवि बना सकते हैं जिसमें आपकी निजी कुंजी हो और इसे लूप डिवाइस के रूप में माउंट करें, फिर वहां से अपनी ssh कुंजी का उपयोग करें।

एक खाली फ़ाइल बनाएँ:

dd if=/dev/zero of=diskimg bs=1024 count=1024

इसे ext2 स्वरूपित करें (जब यह कहे कि डिवाइस नहीं है तो Y दबाएं):

mke2fs diskimg

इसे कहीं माउंट करें (जड़ के रूप में):

mount -t ext2 -o loop diskimg /my/path/to/diskimg

अब आपके पास एक छोटा ext2 फाइल सिस्टम है, जिस पर आप अनुमतियां सेट कर सकते हैं। आप इसे माउंट करने के लिए एक स्क्रिप्ट लिख सकते हैं और यह सुनिश्चित कर सकते हैं कि उन अनुमतियों के पास सही यूआईडी / जीआईडी ​​है जो आपके सिस्टम पर आधारित है (चूंकि यूआईडी बेमेल हो सकता है)। इसमें काम करने के लिए sudo / root एक्सेस की भी आवश्यकता होती है।


ऐसा लगता है कि कोई सरल विकल्प नहीं है
उदाहरण के लिए मुझे

1
यह बहुत गलत है - लेकिन बहुत अच्छा है :)
वॉरेन

1
@warren: मैंने इसे 'पागल' के साथ पेश किया। :
काइल स्मिथ 20

2

StrictModes noअपने /etc/ssh/sshd_config(और पुनः लोड / पुनः लोड sshd) को जोड़ने के बारे में क्या ?

संपादित करें: उफ़, यह विकल्प केवल सर्वर-साइड है: /


1

यदि मैं सही ढंग से याद ssh-agentकरता हूं, तो कुंजी अनुमतियों की जांच नहीं करता है। तो यह काम कर सकता है:

[-S "$ SSH_AUTH_SOCK"] || eval $ (ssh- एजेंट)
ssh-add path / to / id_rsa

FYI करें, यह काम नहीं करता है। ssh-addफ़ाइल अनुमति की जाँच करता है।
काइल स्मिथ

0

आप अपने माउंट विकल्प (संशोधित कर सकते हैं umask, uidऔर gidसूट करने के लिए)?


AFAIK नहीं, यह एक ट्रू-क्रिप्ट वॉल्यूम है, मेरा एकमात्र विकल्प इसे केवल पढ़ने के लिए माउंट करना है और ssh अभी भी शिकायत करता है यह 0777 है
उदाहरण के लिए
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.