कैसे उपयोग एन्क्रिप्टेड पासवर्ड के लिए बैश स्क्रिप्ट में

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 आदेश। हम एक पल में उनमें से प्रत्येक पर एक नज़र ले लेंगे।
 गूंज 'जंग लगी herring.pitshaft!' | openssl ENC -aes-256-सीबीसी -md SHA512 -एक -pbkdf2 -iter 100000 नमक -pass पास: 'pick.your.password' 
[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] लिनक्स पर बैश में "यहां दस्तावेज़" का उपयोग कैसे करें

लिनक्स - सर्वाधिक लोकप्रिय लेख

लिनक्स पर ज़ोंबी प्रक्रियाओं को कैसे मारें

लिनक्स Nov 25, 2025

Fatmawati Achmad Zaenuri / Shutterstock [1 1] जो प्रोग्राम खराब रूप से लिखे गए हैं या बुर�..


कैसे करने के लिए लिनक्स पर SQLite के लिए उपयोग डीबी ब्राउज़र

लिनक्स Dec 16, 2025

Fatmawati Achmad Zaenuri / Shutterstock [1 1] SQLite के लिए DB ब्राउज़र आपको लिनक्स पर SQLite डेट�..


लिनक्स उपयोगकर्ता क्या कर सकता है उसे सीमित करने के लिए प्रतिबंधित शेल का उपयोग कैसे करें

लिनक्स Mar 25, 2025

Fatmawati Achmad Zaenuri / Shutterstock [1 1] एक प्रतिबंधित शेल सीमाएं लिनक्स पर उपयोग�..


कैसे आपका मैक का लॉग आउट करने के लिए टर्मिनल का उपयोग करते हुए

लिनक्स Aug 8, 2025

एप्पल डेस्कटॉप के मेनू बार में विकल्प के साथ अपने मैक से लॉग आउट करने के..


How to Flush DNS in Linux

लिनक्स Nov 14, 2025

[१००] [१०१]लिनक्स में डीएनएस को कैसे फ्लश करने के लिए[१०२] [१०३] [१०४]क्या आपक�..


How to Deal With Spaces in Filenames on Linux

लिनक्स Dec 14, 2025

[१००] [१०१]लिनक्स पर फ़ाइल नाम में रिक्त स्थान से कैसे निपटें[१०२] [१०३] [१०४]�..


How to Set a Static IP Address in Ubuntu

लिनक्स Oct 17, 2025

[१००] [१०१]उबंटू में एक स्थिर आईपी पता कैसे सेट करें[१०२] [१०३] [१०४]आपका होम न..


How to Get Your Public IP in a Linux Bash Script

लिनक्स Nov 9, 2025

[१००] [१०१]कैसे एक लिनक्स बैश स्क्रिप्ट में अपने सार्वजनिक आईपी प्राप्त करन�..


श्रेणियाँ