केवल कुंजी-आधारित प्रमाणीकरण के साथ ssh के माध्यम से लॉगिन करने के लिए रूट की अनुमति दें


49

मुझे कुछ ssh सर्वर कॉन्फ़िगरेशन के बारे में कुछ संदेह है /etc/ssh/sshd_config। मुझे अगला व्यवहार चाहिए:

  1. सार्वजनिक कुंजी प्रमाणीकरण रूट के रूप में प्रमाणित करने का एकमात्र तरीका है (कोई पासवर्ड प्रमाणीकरण या अन्य नहीं)
  2. सामान्य उपयोगकर्ता दोनों (पासवर्ड और सार्वजनिक कुंजी प्रमाणीकरण) का उपयोग कर सकते हैं

अगर मैं सेट करता PasswordAuthentication noहूं तो मेरा पहला बिंदु संतुष्ट होता है लेकिन दूसरा नहीं। PasswordAuthentication noकेवल रूट के लिए सेट करने का एक तरीका है ?

जवाबों:


78

आप PermitRootLoginनिर्देश का उपयोग करके ऐसा कर सकते हैं । से sshd_configमैनपेज:

निर्दिष्ट करता है कि क्या ssh (1) का उपयोग करके रूट लॉग इन कर सकता है। तर्क "हाँ", "बिना पासवर्ड", "मजबूर-आज्ञा-केवल", या "नहीं" होना चाहिए। डिफ़ॉल्ट "हाँ" है।

यदि यह विकल्प "बिना-पासवर्ड" पर सेट किया गया है, तो पासवर्ड प्रमाणीकरण रूट के लिए अक्षम है।

निम्नलिखित आप क्या चाहते हैं पूरा होगा:

PasswordAuthentication yes
PermitRootLogin without-password

1
मैंने डेबियन पर यह कोशिश की और service ssh restartसर्वर पर सत्यापित किया और फिर क्लाइंट पर मैंने अपनी कुंजी के बिना कनेक्ट करने का प्रयास किया ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no root@hostऔर वास्तव में पासवर्ड के साथ लॉगिन नहीं कर सका, लेकिन रूट उपयोगकर्ता के लिए कुंजी के साथ।
बस्तियन

हाँ, लेकिन अगर आप इसके बजाय बस करते हैं, तो आप पासवर्ड के साथ लॉगिन कर सकते हैं: ssh -o PreferredAuthentications=password root@hostविशेष रूप से सुरक्षित नहीं imho
भू

2
2019 में यह "PermitRootLogin निषिद्ध-पासवर्ड" है, पुराना बिना पासवर्ड एक अलहदा उपनाम है।
वबरून

10

आप Matchप्रति उपयोगकर्ता या समूह प्रमाणीकरण या प्रति आईपी पते या कनेक्शन के मूल के होस्ट नाम के लिए कुछ विकल्पों को कॉन्फ़िगर करने के लिए ब्लॉकों का उपयोग कर सकते हैं ।

PasswordAuthentication yes
PermitRootLogin yes

Match User root
PasswordAuthentication no

3
मैं अपने ssh सर्वर से मुझे ऐसा करने से रोकने में कामयाब रहा।
रिचर्ड मेट्ज़लर

यह सबसे अच्छा तरीका लगता है यदि आप कभी नहीं चाहते हैं कि पासवर्ड रूट के लिए दिखाई दे।
सिंह

इसने मुझे बाहर भी बंद कर दिया है। मुझे लगता है कि यह गलत क्रम में हो सकता है ...
गैरी

3

मेरे सर्वर पर रूट विशेषाधिकार देने के लिए मेरे पास और भी अधिक प्रतिबंधात्मक दृष्टिकोण है, जो मेरे जैसे पागल व्यक्तियों के लिए दिलचस्प हो सकता है। सावधान रहें कि आप क्या करते हैं और किस क्रम में हैं, अन्यथा आप एक प्रणाली के साथ समाप्त हो सकते हैं जिस पर आप रूट एक्सेस प्राप्त नहीं कर सकते।

  • एक विशिष्ट समूह बनाएँ sugroup, जिसे सदस्यों को रूट बनने दिया जाएगा और केवल sshd_confid के अंत में निम्नलिखित पंक्तियाँ डालकर इस समूह के लिए मुख्य प्रमाणीकरण की अनुमति दी जाएगी :

Match Group sugroup

PasswordAuthentication no

  • आदेश जगह auth required pam_wheel.so group=sugroupमें /etc/pam.d/su। यह पहले से ही हो सकता है और आपको इसे अनसुना करना होगा। यह उन सभी उपयोगकर्ताओं के लिए रूट एक्सेस से इनकार करता है जो सुगरग्रुप के सदस्य नहीं हैं
  • एक मजबूत रूट पासवर्ड चुनें :)
  • जांचें कि क्या आपका नया प्रमाणीकरण तरीका काम करता है, और केवल अगर:
  • PermitRootLogin noमें उपयोग करके ssh के माध्यम से सीधे रूट लॉगिन को अस्वीकार करें /etc/ssh/sshd_config

इस कॉन्फ़िगरेशन का उपयोग करके रूट बनने के लिए एक कुंजी प्रमाणीकरण और एक पासवर्ड का उपयोग करना आवश्यक है। मैंने अपने सर्वर को इस तरह कॉन्फ़िगर किया है, क्योंकि मैं प्रमाणीकरण विधि की परवाह किए बिना, ssh के माध्यम से कोई सीधा रूट एक्सेस करना पसंद करता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.