मुझे यह स्वीकार करना चाहिए कि मुझे कुछ मामलों में पासवर्ड के बिना सर्वर पसंद हैं। एक विशिष्ट सर्वर उन लोगों के लिए असुरक्षित है जिनके पास इसकी भौतिक पहुंच है। इसलिए कुछ मामलों में इसे शारीरिक रूप से बंद करना व्यावहारिक है और तब से किसी भी भौतिक पहुंच पर भरोसा करें ।
मूल अवधारणा
सिद्धांत रूप में, जब मैं शारीरिक रूप से इस तरह के सर्वर तक पहुंचता हूं, तो मुझे बिना root
लॉगिन के ही टाइप करके पासवर्ड के बिना प्रशासन कार्य करने में सक्षम होना चाहिए और मुझसे पासवर्ड नहीं पूछा जाना चाहिए। वही उपयोगकर्ता खातों पर लागू हो सकता है, लेकिन वास्तव में उन्हें भौतिक रूप से एक्सेस नहीं किया जाएगा। इसलिए (कभी-कभी) स्थानीय पहुंच के लिए किसी सिस्टम पासवर्ड की आवश्यकता नहीं होती है।
सर्वर को दूरस्थ रूप से एक्सेस करते समय, प्रशासन के लिए, या उपयोगकर्ता खाते के लिए, मैं हमेशा SSH निजी कुंजी का उपयोग करने की अपेक्षा करता हूं। बस बनाए गए खाते के लिए SSH कुंजी सेट करना बहुत आसान है और इस प्रकार (नियमित) रिमोट एक्सेस के लिए किसी सिस्टम पासवर्ड की आवश्यकता नहीं होती है।
# user=...
#
# useradd -m "$user"
# sudo -i -u "$user"
$ keyurl=...
$
$ mkdir -p .ssh
$ curl -o .ssh/authorized_keys "$keyurl"
निष्कर्ष यह है कि, सिद्धांत रूप में, हम इस तरह के मामलों के उपयोग के लिए किसी भी सिस्टम पासवर्ड को कम नहीं करेंगे। तो सवाल यह है कि, हम सिस्टम और उपयोगकर्ता खातों को एक सुसंगत और सुरक्षित तरीके से कैसे कॉन्फ़िगर करते हैं।
स्थानीय पहुँच विवरण
हम यह सुनिश्चित कैसे कर सकते हैं कि रूट खाते को बिना पासवर्ड के स्थानीय रूप से एक्सेस किया जा सकता है? मुझे नहीं लगता कि हम का उपयोग कर सकते हैं passwd -d
कि के रूप में रूट पहुँच भी अनुमोदक कर देगा और एक unpriviliged उपयोगकर्ता सकता स्विच मुक्त है, जो गलत है के लिए रूट करने के लिए। हम इसका उपयोग नहीं कर सकते passwd -l
क्योंकि यह हमें लॉग इन करने से रोकता है।
ध्यान दें कि स्थानीय पहुंच विशेष रूप से स्थानीय कीबोर्ड का उपयोग करने के बारे में है। इसलिए एक वैध समाधान किसी भी उपयोगकर्ता को स्विच करने की अनुमति नहीं देना चाहिए (चाहे उपयोग कर रहा हो su
या नहीं sudo
)।
रिमोट एक्सेस विवरण
कुछ समय पहले तक उपरोक्त समाधान काम करेगा, लेकिन अब SSH ने लॉक किए गए उपयोगकर्ता खातों की जांच शुरू कर दी है। हम शायद passwd -d
उन्हीं कारणों से उपयोग नहीं कर सकते । हम इसका उपयोग नहीं कर सकते passwd -u
क्योंकि यह शिकायत करता है कि यह क्या passwd -d
करता है।
इस भाग के लिए डमी पासवर्ड के साथ वर्कअराउंड है।
user=...
echo -ne "$user:`pwgen 16`\n" | chpasswd
यह भी हो सकता है कि SSH में लॉक अकाउंट चेकिंग को पूरी तरह से बंद कर दिया जाए, लेकिन यह लॉक किए गए खातों के समर्थन को बनाए रखने के लिए अच्छा होगा और सिर्फ उन्हें अनलॉक करने में सक्षम होगा।
अंतिम नोट्स
मुझे जिस चीज में दिलचस्पी है, वह एक समाधान है जो आपको स्थानीय रूप से रूट खाते में और रूट खातों सहित सभी खातों को बिना किसी पासवर्ड के लॉग इन करने की अनुमति देगा। दूसरी ओर, एक समाधान को स्पष्ट रूप से वर्णित तरीकों को छोड़कर सुरक्षा को प्रभावित नहीं करना चाहिए, विशेष रूप से दूरदराज के उपयोगकर्ताओं को रूट खाते या अन्य उपयोगकर्ताओं के खाते तक पहुंचने की अनुमति नहीं। समाधान पर्याप्त रूप से मजबूत होना चाहिए ताकि यह अप्रत्यक्ष रूप से सुरक्षा मुद्दों का कारण न बने।
एक स्वीकृत और सम्मानित जवाब व्यक्तिगत टूल के विस्तृत कॉन्फ़िगरेशन का वर्णन कर सकता है या नहीं कर सकता है लेकिन इसमें वर्णित लक्ष्यों तक पहुंचने के लिए प्रमुख बिंदु होने चाहिए। ध्यान दें कि यह शायद जैसे उपकरणों के पारंपरिक उपयोग के माध्यम से हल नहीं किया जा सकता है passwd
, ssh
, su
, sudo
और पसंद है।
पहले उत्तरों को पढ़ने के बाद अधिक विचार
बस एक विचार - लॉगिन प्रक्रियाओं के बजाय रूट शेल शुरू करके स्थानीय रूट एक्सेस प्राप्त किया जा सकता है। लेकिन अभी भी केवल पासवर्ड प्रमाणीकरण लॉक करने की आवश्यकता है, सार्वजनिक कुंजी प्रमाणीकरण नहीं।