मैंने .ssh / अधिकृत_की सेटअप किया है और पब / निजी कुंजी का उपयोग करके नए "उपयोगकर्ता" के साथ लॉगिन करने में सक्षम हूं ... मैंने sudoers सूची में "उपयोगकर्ता" भी जोड़ा है ... मेरे पास अब जो समस्या है वह तब है मैं एक sudo कमांड निष्पादित करने की कोशिश करता हूं, जैसे कुछ सरल:
$ sudo cd /root
यह मुझे मेरे पासवर्ड के लिए संकेत देगा, जो मैं दर्ज करता हूं, लेकिन यह काम नहीं करता है (मैं जिस निजी कुंजी पासवर्ड का उपयोग कर रहा हूं वह सेट है)
साथ ही, मैंने उपयोगकर्ता के पासवर्ड का उपयोग करके अक्षम कर दिया है
$ passwd -l user
मुझे किसकी याद आ रही है?
कहीं मेरी शुरुआती टिप्पणी को गलत समझा जा रहा है ...
मैं अपने सिस्टम को सख्त करने की कोशिश कर रहा हूं ... अंतिम लक्ष्य लॉग / बनाम सरल पासवर्ड प्रमाणीकरण करने के लिए पब / निजी कुंजी का उपयोग करना है। मुझे पता चल गया है कि कैसे अधिकृत_की फ़ाइल के माध्यम से सभी को सेट करना है।
इसके अतिरिक्त मैं मूल रूप से सर्वर लॉगिन को रूट खाते के माध्यम से रोकूंगा। लेकिन इससे पहले कि मैं ऐसा करता हूं कि मुझे एक दूसरे उपयोगकर्ता के लिए काम करने के लिए sudo की जरूरत है (वह उपयोगकर्ता जिसे मैं हर समय सिस्टम में लॉगिन करूंगा)।
इस दूसरे उपयोगकर्ता के लिए मैं नियमित पासवर्ड लॉगिन को रोकना चाहता हूं और केवल पब / निजी कुंजी लॉगिन को बाध्य करता हूं, अगर मैं उपयोगकर्ता को "पासवार्ड -l उपयोगकर्ता ... के माध्यम से लॉक नहीं करता हूं ... तो यदि मैं कुंजी का उपयोग नहीं करता हूं, तो भी मैं कर सकता हूं एक नियमित पासवर्ड के साथ सर्वर में जाओ।
लेकिन इससे भी महत्वपूर्ण बात यह है कि मुझे एक उपयोगकर्ता के साथ पब / निजी कुंजी सेटअप के साथ काम करने के लिए sudo प्राप्त करने की आवश्यकता है, जिसके पास उसका पासवर्ड अक्षम था।
संपादित करें: ठीक है, मुझे लगता है कि मुझे मिल गया है (समाधान):
1) मैंने समायोजित / etc / ssh / sshd_config और सेट किया है PasswordAuthentication no
यह ssh पासवर्ड लॉगिन को रोकेगा (ऐसा करने से पहले एक कामकाजी सार्वजनिक / निजी कुंजी सेटअप सुनिश्चित करें)
2) मैंने sudoers सूची को समायोजित किया है visudo
और जोड़ा है
root ALL=(ALL) ALL
dimas ALL=(ALL) NOPASSWD: ALL
3) रूट एकमात्र उपयोगकर्ता खाता है जिसमें एक पासवर्ड होगा, मैं दो उपयोगकर्ता खातों "डिमास" और "शेरी" के साथ परीक्षण कर रहा हूं जिसमें पासवर्ड सेट नहीं है (पासवर्ड रिक्त हैं, passwd -d user
)
उपरोक्त अनिवार्य रूप से सभी को पासवर्ड के साथ सिस्टम में प्रवेश करने से रोकता है (एक सार्वजनिक / निजी कुंजी सेटअप होनी चाहिए)।
इसके अतिरिक्त sudoers सूची में उपयोगकर्ताओं के पास व्यवस्थापक क्षमताएं हैं। वे su
विभिन्न खातों में भी कर सकते हैं। तो मूल रूप से "डिमास" कर सकते हैं sudo su sherry
, हालांकि "डिमास नहीं कर सकते हैं su sherry
। इसी तरह सुडोलर्स सूची में कोई भी उपयोगकर्ता नहीं कर सकता है su user
या नहीं कर सकता है sudo su user
।
नोट उपरोक्त कार्य करता है लेकिन खराब सुरक्षा माना जाता है। कोई भी स्क्रिप्ट जो कोड को "डिमास" या "शेरी" के रूप में एक्सेस करने में सक्षम है, उपयोगकर्ता रूट एक्सेस प्राप्त करने के लिए सुडो को निष्पादित करने में सक्षम होंगे। Ssh में एक बग जो सेटिंग्स के बावजूद दूरस्थ उपयोगकर्ताओं को लॉग इन करने की अनुमति देता है, फ़ायरफ़ॉक्स जैसी किसी चीज़ में एक रिमोट कोड निष्पादन, या कोई अन्य दोष जो अवांछित कोड को चलाने की अनुमति देता है क्योंकि उपयोगकर्ता अब रूट के रूप में चलाने में सक्षम होगा। सूडो को हमेशा एक पासवर्ड की आवश्यकता होती है या आप किसी अन्य उपयोगकर्ता के बजाय रूट के रूप में लॉग इन कर सकते हैं।