उबंटू सर्वर पर एक नया एसएसएच उपयोगकर्ता बनाएं

बस एक नया वर्चुअल उबंटू सर्वर बनाया और मैं इसे उत्पादन उपयोग के लिए सख्त करने की प्रक्रिया में हूं । मेरे पास वर्तमान में एक रूट खाता है । मैं निम्नलिखित करना चाहता हूं:

  • एक नया उपयोगकर्ता बनाएं (चलो उन्हें कॉल करें jim बाकी के लिए) । मैं उन्हें एक है चाहता हूँ /home/ निर्देशिका ।
  • दे दो jim एसएसएच एक्सेस।
  • अनुमति दें jim को su रूट करने के लिए लेकिन प्रदर्शन नहीं sudo संचालन.
  • रूट एसएसएच एक्सेस बंद करें ।
  • क्रूर-हमलों को रोकने में मदद करने के लिए एसएसएचडी को एक गैर-मानक बंदरगाह पर ले जाएं ।

मेरी समस्या पहले दो मदों के साथ है । मैंने पहले ही पाया है useradd लेकिन किसी कारण से, मैं एसएसएच पर इसके साथ बनाए गए उपयोगकर्ता के रूप में लॉग इन नहीं कर सकता । क्या मुझे इसकी अनुमति देने के लिए एसएसएचडी को हरा देना होगा?

एसएसएच निर्देशिका और फ़ाइल अनुमतियों के बारे में बहुत उपयुक्त है । सुनिश्चित करें कि:

  1. निर्देशिका / होम / उपयोगकर्ता नाम / । एसएसएच की अनुमति "700" है और उपयोगकर्ता के स्वामित्व में है (रूट नहीं!)
  2. / होम/उपयोगकर्ता नाम/एसएसएच / प्राधिकृत कुंजी की अनुमति "600" है और उपयोगकर्ता के स्वामित्व में है

अपनी सार्वजनिक कुंजी को अधिकृत _की फ़ाइल में कॉपी करें ।

sudo chown -R username:username /home/username/.sshsudo chmod 0700 /home/username/.sshsudo chmod 0600 /home/username/.ssh/authorized_keys

वहाँ है नहीं। उपयोगकर्ता को /आदि/एसएसएच/एसएसएच_कॉन्फिग में जोड़ने की आवश्यकता है ।

संपादित करें (रूट के रूप में) /etc/ssh/sshd_config. इसके लिए निम्नलिखित संलग्न करें:

Port 1234PermitRootLogin noAllowUsers jim

Port 1234 पोर्ट 1234 पर सुनने के लिए एसएसएच का कारण बनता है । आप 1 से 65535 तक किसी भी अप्रयुक्त पोर्ट का उपयोग कर सकते हैं । एक विशेषाधिकार प्राप्त पोर्ट (पोर्ट 1-1024) चुनने की सिफारिश की गई है जिसका उपयोग केवल रूट द्वारा किया जा सकता है । यदि आपका एसएसएच डेमॉन किसी कारण से काम करना बंद कर देता है, तो एक दुष्ट एप्लिकेशन कनेक्शन को रोक नहीं सकता है ।

PermitRootLogin प्रत्यक्ष रूट लॉगिन को अस्वीकार करता है ।

AllowUsers jim उपयोगकर्ता की अनुमति देता है jim एसएसएच के माध्यम से लॉगिन करने के लिए । यदि आपको हर जगह से लॉगिन करने की आवश्यकता नहीं है, तो आप जिम को आईपी पते पर सीमित करके इसे और अधिक सुरक्षित बना सकते हैं (अपने वास्तविक आईपी पते के साथ 1.2.3.4 बदलें):

AllowUsers jim@1.2.3.4

कॉन्फ़िगरेशन फ़ाइल में परिवर्तन /etc/ssh/sshd_config कॉन्फ़िगरेशन को पुनः लोड करने के लिए तुरंत लागू नहीं किया जाता है, चलाएं:

sudo service ssh reload

में सुराग नहीं होगा /var/log/auth.log क्यों एसएसएच (या पीएएम) लॉगिन प्रयास को अस्वीकार कर रहा है । अतिरिक्त सुराग का उपयोग करके पाया जा सकता है -v के साथ विकल्प एसएसएच ग्राहक। कई सामान्य स्थितियां, कुछ अन्य उत्तरों में उल्लिखित हैं:

  • उपयोगकर्ता खाते में पासवर्ड का अभाव है, या अन्यथा अक्षम है (देखें man passwd, पासवर्ड रीसेट करने या सामग्री की जांच करने का प्रयास करें /etc/shadow).
  • /etc/ssh/sshd_config लॉगिन को अस्वीकार करने के लिए कॉन्फ़िगर किया गया है (DenyUsers, AllowUsers, PasswordAuthentication, PubkeyAuthentication, UsePAM आदि, देखें man sshd_config).
  • उपयोगकर्ता का खोल सूचीबद्ध नहीं है /etc/shells.
  • एसएसएच ऑपरेशन से संबंधित निर्देशिकाओं या फ़ाइलों पर विभिन्न अनुमति समस्याएं: /etc/ssh, /home/jim/.ssh, /home/jim/.ssh/*, आदि ।

मैं भी उपयोग करने की सलाह दूंगा एडयूज़र (के बजाय यूजरडीडी) नए उपयोगकर्ताओं को जोड़ने के लिए; यह विभिन्न डिफ़ॉल्ट खाता सेटिंग्स के बारे में थोड़ा अधिक अनुकूल है ।

जब तक उपयोगकर्ता का हिस्सा नहीं है admin समूह, वे नहीं कर पाएंगे सुडो रूट करने के लिए । उनके लिए उपयोग करने के लिए आपका, आपको एक रूट पासवर्ड सेट करना होगा (passwd root), जिसके बाद मैं सेटिंग की सलाह देता हूं PermitRootLogin=no में /etc/ssh/sshd_config.

मैं गलत हो सकता हूं लेकिन मुझे कनेक्ट करने से पहले हमेशा सर्वर डेमॉन स्थापित करना होगा (कम से कम डेस्कटॉप पर)एसएसएच डिफ़ॉल्ट रूप से स्थापित है लेकिन यह सिर्फ क्लाइंट है

यह आदेश सर्वर स्थापित करता है

sudo apt-get install openssh-server

आप पोर्ट को बदल सकते हैं और संपादन करके रूट लॉगिन को रोक सकते हैं

/etc/ssh/sshd_config

इसके लिए आपको सेवा को पुनरारंभ करना होगा ।

sudo service ssh restart

जब तक आपने पासवर्ड सेट नहीं किया है तब तक जिम में एसएसएच एक्सेस नहीं होगा । रूट निष्पादित के रूप में:

grep -i "jim" /etc/shadow | awk -F':' '{ print $2 }'

यदि यह आदेश एक "!"चरित्र तो लॉगिन इस खाते के लिए अक्षम है । निष्पादन passwd jim चूंकि रूट आपको एक नए और पुष्टि किए गए पासवर्ड स्ट्रिंग के लिए संकेत देगा जिसके बाद ऊपर दिए गए ग्रेप कमांड को जिम के लिए पासवर्ड का प्रतिनिधित्व करने वाली हैश स्ट्रिंग वापस करनी चाहिए ।

यह भी सत्यापित करना सुनिश्चित करें कि जिम में एक लॉगिन शेल है, जो डिफ़ॉल्ट रूप से सेट है, और एक होम डायरेक्टरी मौजूद है ।

कृपया ध्यान दें कि एसएसएच सर्वर सेटिंग्स को संशोधित करने की जानकारी के लिए लेकेनस्टीन की पोस्ट ।

मेरे मामले में मेरे पास एक समूह था जिसे एक्सेस की अनुमति थी और उपयोगकर्ता इसका हिस्सा नहीं था । इसने मेरे लिए इसे हल किया ।

उपयोगकर्ता के साथ ऊपर दिए गए उदाहरण का उपयोग करना jim और समूह के सदस्य मान jim चूंकि यह केवल समूह (मुद्दा) है groups के रूप में लॉग इन करते समय कमांड jim समूहों को खोजने के लिए आप का एक हिस्सा हैं) । मेरे में /etc/ssh/sshd_config फ़ाइल मैं था AllowGroups sshusers प्रवेश और इस प्रकार जोड़ने की जरूरत है jim को sshusers समूह। नीचे यह कैसे पूरा किया जाएगा:

usermod -a -G sshusers jim

अपने समूह और उपयोगकर्ता को अपने कॉन्फ़िगरेशन के लिए उपयुक्त के रूप में बदलें ।

वहाँ कुछ उदाहरण है कि हो सकता है PasswordAuthentication डिफ़ॉल्ट रूप से अक्षम है ।

कृपया जाँच करें /etc/ssh/sshd_config और सुनिश्चित करें कि PasswordAuthentication विशेषता पर सेट है yes.

लेकेनस्टीन मैं प्रश्न उत्तर के लिए एक टिप्पणी छोड़ने में असमर्थ हूं क्योंकि मेरे पास प्रतिष्ठा नहीं है - लेकिन मैंने जोड़ने की कोशिश की

AllowUsers existingUser,newUser

मेरे/आदि/एसएसएच / एसएसएचडी_कॉन्फिग फ़ाइल के लिए और अब मैं अपने मौजूदा उपयोगकर्ता या नए उपयोगकर्ता दोनों के साथ एसएसएच नहीं कर सकता ।

सरल नोट:

इस फ़ाइल के अंदर सार्वजनिक कुंजी लिखी जानी चाहिए:

/home/newUsername/.ssh/authorized_keys

रोलैंड मेरे पास एक/आदि / नोलॉगिन ' फ़ाइल है लेकिन यह खाली है । मैंने इसे हटा दिया और एसएसएच को फिर से शुरू किया लेकिन यह अभी भी जवाब दे रहा है अनुमति अस्वीकार कर दी गई है, कृपया पुनः प्रयास करें । ` जब मैं कोशिश करता हूं और लॉग इन करता हूं ।

हाय! मैं सर्वर में आपकी मदद कर सकता हूं, मुझे नहीं पता कि एसएसएच के साथ आपकी समस्या क्या है, क्योंकि मेरे लिए डिफ़ॉल्ट कॉन्फ़िगरेशन कभी भी मेरे कनेक्शन को मना नहीं करता है । आप मैन 5 नोलोगिन देख सकते हैं, यह लिखता है, कि यदि /आदि/नोलोगिन मौजूद है, तो आप केवल रूट के साथ लॉग इन कर सकते हैं । सामान्य रूप से लॉगिन करने का प्रयास करें, फिर परिणाम लिखें ।

उपयोगकर्ता का खोल क्या है? क्या यह / बिन / बैश है? इसे /आदि/पासवर्ड में देखें । सुनिश्चित करें कि यह /देव/शून्य या /बिन/गलत नहीं है ।

हाँ एलएफसी_फैन, या/आदि / नोलॉगिन भी । उपयोग (सुडो) बिल्ली / आदि / पासवार्ड / ग्रेप जिम

@ एलएफसी_फैन यह /बिन/बैश है

यहां पासवार्ड लाइन है ' जिमएक्स:1000: 1000::/होम/जिम:/बिन / बैश

क्या आपने टाइपो बनाया? वास्तव में जिम और एक्स के बीच एक:होना चाहिए । आप सु को रूट करने की अनुमति क्यों देंगे, लेकिन सुडोको अस्वीकार कर देंगे?

लेकेनस्टीन: हाँ यह एक टाइपो है । उपयोगकर्ता को वास्तव में` जिम ’ नहीं कहा जाता है इसलिए मैं इसे संपादित कर रहा हूं । . जाहिर है वहां ले जाया गया ।

क्या आप अपना तीसरा बिंदु स्पष्ट कर सकते हैं? आप सु के साथ रूट की अनुमति क्यों देंगे, लेकिन सुडो को अस्वीकार कर दें?

मैंने इसे स्वचालित करने के लिए एक स्क्रिप्ट लिखी: GitHub - TeamHG-Memex/sshadduser: A simple tool to add a new user with OpenSSH keys.