−25%

Windows के सालाना भुगतान पर, 31 अक्टूबर तक। प्लान देखें

EQVPS

VPS पर sudo यूज़र कैसे बनाएँ और root छोड़ें

Ubuntu या Debian पर बिना root अधिकार वाला sudo यूज़र बनाएँ, उसे अपनी SSH कुंजी दें, जाँचें, फिर root लॉगिन बंद करें — ऐसे क्रम में कि आप बाहर लॉक न हों।

लगभग हर नया VPS एक जैसे शुरू होता है: आप root के रूप में लॉगिन करते हैं, कुछ चीज़ें इंस्टॉल करते हैं, और एक महीने बाद भी root ही होते हैं। यह तब तक चलता है जब तक कोई पेस्ट किया हुआ स्क्रिप्ट ग़लत फ़ोल्डर न मिटा दे। sudo के साथ सामान्य यूज़र सेट करने में पाँच मिनट लगते हैं, और क्रम कमांड से ज़्यादा मायने रखता है — क्रम गड़बड़ हुआ तो आप ख़ुद को बाहर लॉक कर देंगे।

Ubuntu 22.04/24.04 और Debian 12 के लिए सुरक्षित क्रम यह है।

1. यूज़र बनाएँ

root के रूप में:

adduser deploy
usermod -aG sudo deploy

adduser पासवर्ड और कुछ वैकल्पिक जानकारी माँगता है (उन पर बस Enter दबाएँ)। असली पासवर्ड चुनें: आप इसे sudo के लिए टाइप करेंगे। Debian की मिनिमल इमेज पर अगर कमांड न हो तो पहले apt install -y sudo चलाएँ।

2. उसे अपनी SSH कुंजी दें

सबसे आसान तरीक़ा है root की अधिकृत कुंजियाँ सही स्वामित्व के साथ कॉपी करना:

rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy

अगर आप हाथ से करना चाहें:

mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys

ग़लत अनुमतियाँ वह क्लासिक वजह हैं जिससे कुंजी वाला लॉगिन चुपचाप फ़ेल होता है। SSH ऐसी authorized_keys फ़ाइल को अनदेखा करता है जिसमें दूसरे यूज़र लिख सकें।

3. कुछ बदलने से पहले जाँचें

root सेशन खुला रखें। एक नए टर्मिनल में:

ssh -p 22 deploy@203.0.113.10
sudo whoami

अपना IP और पोर्ट इस्तेमाल करें — NAT प्लान पर यह डैशबोर्ड वाला निजी SSH पोर्ट है। अगर sudo whoami ने root छापा, तो सब ठीक है। अगर लॉगिन फ़ेल हो, तो ठीक करने के लिए root वाली विंडो अभी आपके पास है।

4. root लॉगिन बंद करें

अब दरवाज़ा बंद करें। मुख्य कॉन्फ़िग बदलने के बजाय एक छोटी drop-in फ़ाइल बनाएँ:

cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh

sshd -t पहले सिंटैक्स जाँचता है। टूटी कॉन्फ़िग और फिर reload — यही रास्ता लोगों को कंसोल तक ले जाता है। PasswordAuthentication no तभी समझदारी है जब नए यूज़र के लिए कुंजी वाला लॉगिन काम कर रहा हो — जो आपने अभी जाँचा।

एक और टर्मिनल खोलें और पक्का करें कि root मना हो रहा है और deploy अब भी अंदर जा रहा है। फिर पुराना root सेशन बंद करें।

5. वैकल्पिक: ऑटोमेशन के लिए बिना पासवर्ड का sudo

अगर किसी डिप्लॉय स्क्रिप्ट को बिना पूछे sudo चाहिए, तो उसे ठीक उतना ही दें, उससे ज़्यादा नहीं:

visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp

सच कहें तो NOPASSWD: ALL लुभाता है, लेकिन इसका मतलब है कि चोरी हुई कुंजी root के बराबर है। इसे उन्हीं कमांड तक सीमित रखें जो ऑटोमेशन चलाता है।

अगर कुछ गड़बड़ हो जाए

डैशबोर्ड का वेब कंसोल न SSH पर निर्भर है न फ़ायरवॉल पर। वहाँ से लॉगिन करें, /etc/ssh/sshd_config.d/ वाली फ़ाइल ठीक करें, reload करें, बस। पूरा रिकवरी तरीक़ा हमने लॉक हो चुके VPS में वापस कैसे जाएँ में लिखा है।

आगे क्या करें

हर प्लान के एक्सेस विकल्प एक्सेस दस्तावेज़ में हैं। $3 वाला Nano भी बिना root वाले यूज़र का हक़दार है — यह सबसे सस्ता सुरक्षा अपग्रेड है।

सामान्य प्रश्न

सीधे root ही क्यों न चलाते रहें?

root के रूप में चलाई गई हर चीज़ पूरा सिस्टम बिगाड़ सकती है, एक टाइपो भी। बॉट भी सबसे पहले 'root' नाम आज़माते हैं, इसलिए root लॉगिन बंद करने से सबसे ज़्यादा अंदाज़ा लगाया जाने वाला निशाना हट जाता है। नाम वाला यूज़र और sudo हर विशेषाधिकार वाली कमांड से पहले आपको एक ठहराव और चलाई गई चीज़ों का रिकॉर्ड देता है।

अगर मैं ख़ुद को बाहर लॉक कर दूँ तो?

अपने डैशबोर्ड का वेब कंसोल इस्तेमाल करें। यह तब भी काम करता है जब SSH टूटा हो या फ़ायरवॉल आपको रोक रहा हो, ताकि आप अंदर जाकर sshd_config ठीक कर सकें। इसीलिए root सेशन बंद करने से पहले नए यूज़र को जाँचा जाता है।

क्या बिना पासवर्ड वाला sudo चालू करूँ?

निजी अकाउंट के लिए पासवर्ड पूछना बनाए रखें — अगर आपकी SSH कुंजी लीक हो जाए तो यही आख़िरी सुरक्षा है। बिना पासवर्ड का sudo ऑटोमेशन के लिए अलग डिप्लॉय यूज़र के लिए ठीक है, बशर्ते वह सिर्फ़ उन्हीं कमांड तक सीमित हो जिनकी उसे सच में ज़रूरत है।

मेरे Debian सर्वर पर sudo कमांड ही नहीं है। क्यों?

Debian की मिनिमल इमेज में यह हमेशा नहीं होती। root के रूप में 'apt install -y sudo' से इंस्टॉल करें, फिर अपने यूज़र को sudo ग्रुप में जोड़ें।

कौन-सा SSH पोर्ट इस्तेमाल करूँ?

वही जो आपके डैशबोर्ड में दिख रहा है। डेडिकेटेड IP वाले प्लान आपके अपने IP पर पोर्ट 22 इस्तेमाल करते हैं; NAT प्लान आपका निजी SSH पोर्ट इस्तेमाल करते हैं।

टिप्पणियाँ

अभी तक कोई टिप्पणी नहीं। पहले बनें।

एक टिप्पणी छोड़ें

टिप्पणियाँ दिखने से पहले मॉडरेट की जाती हैं।