कैसे उपयोग एन्क्रिप्टेड पासवर्ड के लिए बैश स्क्रिप्ट में
Jun 30, 2025
लिनक्स
Fatmawati Achmad Zaenuri / Shutterstock.com
[1 1]
आप एक पासवर्ड से सुरक्षित संसाधन से कनेक्ट करने के एक लिनक्स स्क्रिप्ट का उपयोग करने के लिए मजबूर कर रहे हैं, तो आप शायद लिपि में है कि पासवर्ड डालने के बारे में असहज महसूस करते हैं। OpenSSL को हल करती है कि आप के लिए समस्या।
[1 9]
पासवर्ड और स्क्रिप्ट
[1 1]
यह एक महान विचार शेल स्क्रिप्ट में पासवर्ड डाल करने के लिए नहीं है। वास्तव में, यह एक बहुत बुरा विचार है। स्क्रिप्ट गलत हाथों में गिर जाता है, तो हर किसी को इसे पढ़ता देख सकते हैं पासवर्ड क्या है। लेकिन अगर आप एक स्क्रिप्ट का उपयोग करने के लिए मजबूर कर रहे हैं, और क्या आप कर सकते हैं?
[1 1]
आप पासवर्ड को मैन्युअल जब प्रक्रिया पहुँच उस बिंदु है, लेकिन स्क्रिप्ट पहुंच से बाहर चलाने के लिए जा रहा है, तो वह काम नहीं करेगा दर्ज कर सकते हैं। शुक्र है, वहाँ स्क्रिप्ट में पासवर्ड को हार्ड-कोड के लिए एक विकल्प है। इसके अनुसार, यह एक अलग पासवर्ड का उपयोग करता इस लक्ष्य को हासिल करने के लिए, कुछ मजबूत एन्क्रिप्शन के साथ।
[1 1]
हमारे उदाहरण परिदृश्य में, हम अपने Ubuntu कंप्यूटर से एक फेडोरा लिनक्स कंप्यूटर के लिए एक दूरस्थ कनेक्शन बनाने की जरूरत है। हम फेडोरा कंप्यूटर के लिए एक SSH कनेक्शन बनाने के लिए एक बैश खोल स्क्रिप्ट का उपयोग किया जाएगा। स्क्रिप्ट पहुंच से बाहर चलाना चाहिए, और हम लिपि में दूरदराज के खाते के लिए पासवर्ड डाल करने के लिए नहीं करना चाहती। हम इस मामले में SSH कुंजियों का उपयोग नहीं कर सकते हैं क्योंकि हम नाटक कर रहे हैं कि हम फेडोरा कंप्यूटर पर कोई नियंत्रण या व्यवस्थापक अधिकार नहीं है।
[1 1]
हम अच्छी तरह से ज्ञात का उपयोग करने के लिए जा रहे हैं
OpenSSL Toolkit
एन्क्रिप्शन और एक उपयोगिता बुलाया को संभालने के लिए
sshpass
SSH आदेश में पासवर्ड को खिलाने के लिए।
[1 1]
सम्बंधित:
लिनक्स खोल से एसएसएच कुंजी कैसे बनाएं और स्थापित करें
[3 9]
OpenSSL और sshpass स्थापित कर रहा है
[1 1]
क्योंकि अन्य एन्क्रिप्शन और सुरक्षा उपकरणों का एक बहुत OpenSSL का उपयोग करें, यह पहले से ही आपके कंप्यूटर पर स्थापित किया जा सकता है। हालांकि, अगर यह नहीं है, यह केवल एक पल के स्थापित करने के लिए ले जाता है।
[1 1]
उबंटू पर, यह आदेश लिखें:
sudo उपयुक्त प्राप्त openssl
[1 1]
[1 1]
स्थापित करने के लिए
sshpass
, इस आदेश का उपयोग करें:
sudo उपयुक्त स्थापित sshpass
[1 1]
[1 1]
फेडोरा पर, आपको टाइप करने की आवश्यकता है:
sudo DNF openssl
स्थापित
[1 1]
[1 1]
आदेश स्थापित करने के लिए
sshpass
है:
sudo DNF sshpass
स्थापित
[1 1]
[1 1]
Manjaro लिनक्स पर, हम साथ OpenSSL स्थापित कर सकते हैं:
sudo pacman -Sy openssl
[1 1]
[1 1]
अंत में, स्थापित करने के लिए
sshpass
, इस आदेश का उपयोग करें:
sudo pacman -Sy sshpass
[1 1]
[9 3]
कमांड लाइन पर एन्क्रिप्ट
[1 1]
इससे पहले कि हम का उपयोग कर में मिल
openssl
स्क्रिप्ट के साथ आदेश, चलो कमांड लाइन पर यह का उपयोग करके इसे से परिचित हो। आइए कहते हैं कि दूरस्थ कंप्यूटर पर खाते के लिए पासवर्ड है
जंग लगी! herring.pitshaft
। हम का उपयोग कर कि पासवर्ड एन्क्रिप्ट करने जा रहे हैं
openssl
।
[1 1]
हम जब हम करते हैं एक एन्क्रिप्शन पासवर्ड प्रदान करना होगा। एन्क्रिप्शन पासवर्ड एन्क्रिप्शन और डिक्रिप्शन प्रक्रिया में प्रयोग किया जाता है। वहाँ में मापदंडों और विकल्पों में से एक बहुत हैं
openssl
आदेश। हम एक पल में उनमें से प्रत्येक पर एक नज़र ले लेंगे।
[1 1]
[1 1]
हम प्रयोग कर रहे हैं
गूंज
एक पाइप के माध्यम से और में दूरदराज के खाते का पासवर्ड भेजने के लिए
openssl
आदेश।
[1 1]
NS
openssl
मानकों हैं:
ENC -aes-256-सीबीसी
: एन्कोडिंग प्रकार। हम उपयोग कर रहे हैं
उच्च एन्क्रिप्शन मानक
सिफर-ब्लॉक श्रृंखलन के साथ 256-बिट कुंजी सिफर।
-md SHA512
: संदेश पचाने (हैश) प्रकार। हम SHA512 क्रिप्टोग्राफिक एल्गोरिथम का उपयोग कर रहे हैं।
-ए
: इससे पता
openssl
एन्क्रिप्शन चरण के बाद और डिक्रिप्शन चरण से पहले आधार -64 एन्कोडिंग लागू करने के लिए।
-pbkdf2
: का प्रयोग पासवर्ड आधारित कुंजी व्युत्पत्ति समारोह 2 (PBKDF2) यह बहुत ज्यादा एक जानवर बल हमले के लिए कठिन बना देता है अपने पासवर्ड का अनुमान लगाने में सफल होने के लिए। PBKDF2 एन्क्रिप्शन प्रदर्शन करने के लिए कई संगणना की आवश्यकता है। एक हमलावर उन संगणना के सभी दोहराने की आवश्यकता होगी।
-iter 100000
: संगणना की संख्या कि PBKDF2 का उपयोग करेगा सेट करता है।
-नमक
: एक यादृच्छिक रूप से लागू नमक मूल्य का उपयोग करके एन्क्रिप्टेड आउटपुट को हर बार अलग होता है, भले ही सादा पाठ समान हो।
-पास पास: 'pick.your.password'
: उस पासवर्ड को एन्क्रिप्टेड रिमोट पासवर्ड को डिक्रिप्ट करने के लिए उपयोग करने की आवश्यकता होगी। विकल्प
pick.your.password
अपने चयन के एक मजबूत पासवर्ड के साथ।
[15 9]
[1 1]
हमारे का एन्क्रिप्टेड संस्करण
रस्टी! Herring.Pitshaft
पासवर्ड टर्मिनल विंडो में लिखा गया है।
[1 1]
[1 1]
इसे डिक्रिप्ट करने के लिए, हमें उस एन्क्रिप्टेड स्ट्रिंग को पास करने की आवश्यकता है
ओपनस्ल
उसी पैरामीटर के साथ जो हम एन्क्रिप्ट करते थे, लेकिन में जोड़ते थे
-डी
(डिक्रिप्ट) विकल्प।
[4 9] इको u2fsdgvkx19iiirnesg + wm / ukjtzjwnyopjzphyrdkyzh5lvzrpigo1s0gozu46 | openssl enc -aeas-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000 -salt -pass पास: 'pick.your.password'
[1 1]
[1 1]
स्ट्रिंग डिक्रिप्टेड है, और हमारे मूल टेक्स्ट-दूरस्थ उपयोगकर्ता खाते के लिए पासवर्ड टर्मिनल विंडो पर लिखा गया है।
[1 1]
[1 9 0]
[1 1]
यह साबित करता है कि हम अपने रिमोट उपयोगकर्ता खाता पासवर्ड को सुरक्षित रूप से एन्क्रिप्ट कर सकते हैं। जब हम एन्क्रिप्शन चरण में प्रदान किए गए पासवर्ड का उपयोग करते हैं तो हम इसे डिक्रिप्ट भी कर सकते हैं।
[1 1]
लेकिन क्या यह वास्तव में हमारी स्थिति में सुधार करता है? यदि हमें दूरस्थ खाता पासवर्ड डिक्रिप्ट करने के लिए एन्क्रिप्शन पासवर्ड की आवश्यकता है, निश्चित रूप से डिक्रिप्शन पासवर्ड को स्क्रिप्ट में होना होगा? खैर, हाँ, यह करता है। लेकिन एन्क्रिप्टेड रिमोट उपयोगकर्ता खाता पासवर्ड एक अलग, छिपी हुई फ़ाइल में संग्रहीत किया जाएगा। फ़ाइल पर अनुमतियां किसी को भी रोकती हैं लेकिन आप-और सिस्टम के रूट उपयोगकर्ता को, स्पष्ट रूप से पहुंचने से।
[1 1]
किसी फ़ाइल में एन्क्रिप्शन कमांड से आउटपुट भेजने के लिए, हम पुनर्निर्देशन का उपयोग कर सकते हैं। फ़ाइल को ".cret_vault.txt" कहा जाता है। हमने एन्क्रिप्शन पासवर्ड को कुछ और मजबूत में बदल दिया है।
[4 9] इको 'रस्टी! हेरिंग.पिटशाफ्ट' | openssl ex -aeas-256-cbc -md sha512 -a -pbkdf2 -iter 100000 -salt -pass पास: 'गुप्त # वॉल्ट! पासवर्ड' & gt; .secret_vault.txt
[1 1]
[1 1]
कुछ भी दिखाई नहीं देता है, लेकिन पासवर्ड एन्क्रिप्ट किया गया है और ".cret_vault.txt" फ़ाइल को भेजा गया है।
[1 1]
हम परीक्षण कर सकते हैं कि यह छिपी हुई फ़ाइल में पासवर्ड डिक्रिप्ट करके काम करता है। ध्यान दें कि हम उपयोग कर रहे हैं
बिल्ली
यहां नहीं
गूंज
।
[4 9] बिल्ली .secret_vault.txt | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000 -salt -pass पास: 'गुप्त # वॉल्ट! पासवर्ड'
[1 1]
[1 1]
फ़ाइल में डेटा से पासवर्ड सफलतापूर्वक डिक्रिप्ट किया गया है। कुंआ
उपयोग
चम्मद
इस फ़ाइल पर अनुमतियों को बदलने के लिए ताकि कोई भी इसे एक्सेस न कर सके।
[4 9] Chmod 600 .secret_vault.txt
[4 9] ls -l .secret_vault.txt
[1 1]
[1 1]
600 के अनुमतियों मास्क का उपयोग फ़ाइल स्वामी के अलावा किसी अन्य के लिए सभी पहुंच को हटा देता है। अब हम अपनी लिपि लिखने के लिए आगे बढ़ सकते हैं।
[1 1]
सम्बंधित:
लिनक्स पर CHMOD कमांड का उपयोग कैसे करें
[3 9]
एक स्क्रिप्ट में openssl का उपयोग करना
[1 1]
हमारी लिपि बहुत सरल है:
[4 9] #! / बिन / बैश
# दूरस्थ खाते का नाम
REMOTE_USER = GEEK
# दूरस्थ खाते के लिए पासवर्ड
REMOTE_PASSWD = $ (CAT .SECRET_VAULT.TXT | OpensSl ENC -AES-256-CBC -MD SHA512 -a -D -PBKDF2 -ITER 100000 -SALT -PASS पास: 'गुप्त # वॉल्ट! पासवर्ड')
# रिमोट कंप्यूटर
REMOTE_LINUX = FEDORA-34.LOCAL
# दूरस्थ कंप्यूटर से कनेक्ट करें और स्क्रिप्ट.लॉग नामक फ़ाइल में टाइमस्टैम्प डालें
SSHPASS -P $ REMOT_PASSWD SSH -T $ REMOTE_USER @ $ REMOTE_LINUX & lt; & lt; _remote_commands
प्रतिध्वनि $ उपयोगकर्ता "-" $ (दिनांक) & gt; & gt; /home/ $ remote_user/script.log
_remote_commands
हमने एक चर कहा
REMOT_USER
"गीक" करने के लिए।
फिर हम एक चर नामक सेट
REMOT_PASSWD
".cret_vault.txt" फ़ाइल से खींचा गया डिक्रिप्ट पासवर्ड के मूल्य, उसी आदेश का उपयोग करके जिसे हमने एक पल पहले इस्तेमाल किया था।
रिमोट कंप्यूटर का स्थान एक चर के रूप में संग्रहीत किया जाता है
REMOT_LINUX
।
[15 9]
[1 1]
उस जानकारी के साथ, हम इसका उपयोग कर सकते हैं
एसएसएच
रिमोट कंप्यूटर से कनेक्ट करने के लिए कमांड।
NS
सशपास
कमांड कनेक्शन लाइन पर पहला आदेश है। हम इसका उपयोग करते हैं
-पी
(पासवर्ड) विकल्प। यह हमें उस पासवर्ड को निर्दिष्ट करने देता है जिसे भेजा जाना चाहिए
एसएसएच
आदेश।
हम उपयोग करते हैं
-टी
(छद्म-टर्मिनल आवंटन को अक्षम करें) विकल्प के साथ
एसएसएच
क्योंकि हमें दूरस्थ कंप्यूटर पर हमें एक छद्म-टीटीवाई आवंटित करने की आवश्यकता नहीं है।
[15 9]
[2 9 0]
[2 9 1]
[2 9 2]
[2 9 3]
[2 9 5]
[2 9 6]
सम्बंधित
[2 9 8]
लिनक्स पर बैश में "यहां दस्तावेज़" का उपयोग कैसे करें