आप जो कुछ भी करते हैं, वह passwd -uखाली पासवर्ड फ़ील्ड के साथ छोड़ दिया गया राज्य में खाता न छोड़ें : जो पासवर्ड दर्ज किए बिना लॉगिन की अनुमति देता है (एसएसएच को छोड़कर, क्योंकि एसएसएच उस से इनकार करता है)।
पासवर्ड न होने के लिए खाते को बदलें, लेकिन अनलॉक किया जाए। पासवर्ड डेटाबेस में पासवर्ड हैश किसी भी स्ट्रिंग का हैश नहीं है, तो एक खाते में कोई पासवर्ड नहीं है। परंपरागत रूप से, एक-वर्ण स्ट्रिंग जैसे कि *या उसके !लिए उपयोग किया जाता है।
लॉक्ड खाते पासवर्ड फ़ील्ड में एक विशेष मार्कर का उपयोग करते हैं जो स्ट्रिंग को किसी भी स्ट्रिंग का हैश नहीं होने का कारण बनता है। मार्कर प्रणाली-निर्भर है। लिनक्स पर, passwdकमांड !शुरुआत में एक पासवर्ड लगाकर लॉक किए गए पासवर्ड को खोलती है, और ओपनएसएसएच अकाउंट को लॉक के रूप में मानती है यदि फ़ील्ड के साथ शुरू होता है !। अन्य यूनिक्स वेरिएंट समान लेकिन समान तंत्र का उपयोग नहीं करते हैं, इसलिए ध्यान रखें कि यदि आपका पासवर्ड डेटाबेस एक विषम नेटवर्क के बीच साझा किया गया है।
लिनक्स पर, आप SSH पहुंच (कुछ अन्य प्रमाणीकरण विधि के साथ, आमतौर पर एक महत्वपूर्ण जोड़ी) की अनुमति देते हुए पासवर्ड-आधारित एक्सेस को एक खाते में अक्षम कर सकते हैं।
usermod -p '*' username
उपयोगकर्ता खाता वापस पासवर्ड में बदलने में सक्षम नहीं होगा, क्योंकि इसके लिए उन्हें एक वैध पासवर्ड दर्ज करना होगा।
यदि आप चाहें, तो आप पासवर्ड प्रमाणीकरण को अस्वीकार करने के लिए SSH को कॉन्फ़िगर कर सकते हैं, भले ही खाते में पासवर्ड हो। आपको अभी भी SSH के लिए खाते को लॉक न करने पर विचार करने की व्यवस्था करने की आवश्यकता होगी, इसलिए लिनक्स पर उदाहरण के लिए आपको !पासवर्ड फ़ील्ड से निकालने की आवश्यकता होगी (लेकिन फ़ील्ड को खाली न करें - इसे *ऊपर बताए अनुसार सेट करें )। SSH के लिए पासवर्ड प्रमाणीकरण को अक्षम करने के PasswordAuthenticationलिए /etc/sshd_configया /etc/ssh/sshd_config(आपके सिस्टम पर जो भी हो) के लिए एक निर्देश जोड़ें । एक का उपयोग करें Matchबनाने के लिए है कि यह निर्देश केवल एक विशिष्ट उपयोगकर्ता के लिए लागू खंड; Matchब्लॉक दिखाई देने चाहिए
…
Match User username
PasswordAuthentication no