Sshd_config फ़ाइल में 'पासवर्ड के बिना' का क्या अर्थ है?


118

मैंने अपने सर्वर पर सिर्फ उबंटू 14.04 स्थापित किया था और जब मैं अपनी sshd_configफाइल में यह आया तो मैं अपनी सभी कॉन्फिग फाइल्स सेट कर रहा था :

# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes

इससे मुझे बहुत चिंता हुई। मुझे लगा कि यह संभव है कि कोई व्यक्ति बिना पासवर्ड के रूट के रूप में मेरे सर्वर पर लॉग इन कर सकता है।

मैंने अपने सर्वर को रूट के माध्यम से कनेक्ट करने का प्रयास किया:

johns-mbp:~ john$ ssh root@192.168.1.48
The authenticity of host '192.168.1.48 (192.168.1.48)' can't be established.
RSA key fingerprint is 40:7e:28:f1:a8:36:28:da:eb:6f:d2:d0:3f:4b:4b:fe.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.48' (RSA) to the list of known hosts.
root@192.168.1.48's password:  

मैंने एक रिक्त पासवर्ड दर्ज किया और उसने मुझे अंदर नहीं जाने दिया, जो एक राहत थी। तो मेरा सवाल है: पासवर्ड के बिना क्या मतलब है और यह Ubuntu 14.04 में एक डिफ़ॉल्ट क्यों है?

जवाबों:


142

से मैनपेज :

PermitRootLogin

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

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

यदि यह विकल्प "मजबूर-कमांड-केवल" पर सेट है, तो सार्वजनिक कुंजी प्रमाणीकरण के साथ रूट लॉगिन की अनुमति दी जाएगी, लेकिन केवल अगर commandविकल्प निर्दिष्ट किया गया है (जो रूट लॉगिन सामान्य रूप से अनुमति नहीं है, तो रिमोट बैकअप लेने के लिए भी उपयोगी हो सकता है) । अन्य सभी प्रमाणीकरण विधियां रूट के लिए अक्षम हैं।

यदि यह विकल्प "नहीं" पर सेट है, तो रूट को लॉग इन करने की अनुमति नहीं है।

इस प्रकार without-passwordकेवल सार्वजनिक कुंजी प्रमाणीकरण के साथ रूट लॉगिन की अनुमति देता है। इसका उपयोग अक्सर शेल स्क्रिप्ट और स्वचालित कार्यों के साथ किया जाता है।


2
पासवर्ड का उपयोग करके 'रूट लॉगिन' की अनुमति नहीं देना अनुमति देने की तुलना में अधिक मजबूत सुरक्षा माना जाता है। उस ने कहा, आपको तब तक मूल में प्रवेश नहीं करना चाहिए , जब तक कि कोई अन्य विधि (सूडो, आदि) काम न करे।
david6

5
जैसा कि आप देख सकते हैं, जबकि मैन पेज डिफ़ॉल्ट "हां" को इंगित करता है, उबंटू ने डिफ़ॉल्ट "बिना पासवर्ड" बनाया है।
फिरोजशिल

36
तो without-passwordक्या पासवर्ड को छोड़कर सभी तरीकों की अनुमति है? यह वास्तव में लगता है "पासवर्ड की आवश्यकता के बिना लॉगिन करने की अनुमति दी"।
गौथियर

1
"सभी रूट एक्सेस को एक स्थानीय लॉगऑन के माध्यम से एक अद्वितीय और पहचान योग्य उपयोगकर्ता आईडी के माध्यम से और फिर स्थानीय रूप से प्रमाणित स्थानीय रूप से su कमांड के माध्यम से सुगम होना चाहिए। डायरेक्ट रूट लॉगिन बेहद असुरक्षित है और जवाबदेही के लिए ऑडिट ट्रेलिंग के रास्ते में बहुत कम प्रदान करता है।" - सीआईएस आईबीएम एआईएक्स गाइड
डोमिनिक एंटल

22
PermitRootLogin now accepts an argument of 'prohibit-password' as a less-ambiguous synonym of 'without-password'.
एंडोलिथ

16

यदि आप PAM प्रमाणीकरण का उपयोग कर रहे हैं तो वास्तव में यह सेटिंग बहुत ज्यादा कुछ नहीं करती है। sshd_configकॉन्फ़िगरेशन फ़ाइल के नीचे आपको मिलेगा:

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.

Ubuntu पर डिफ़ॉल्ट सेटिंग PAM प्रमाणीकरण का उपयोग करने के लिए है:

UsePAM yes

1
मेरे संक्षिप्त अनुभव में , यहां तक ​​कि इसे स्थापित noकरना PermitRootLogin without-passwordवास्तव में काम नहीं कर सकता है, किसी तरह! :(
क्रैगॉक्स

1
यदि आप एक विशिष्ट डेस्कटॉप सिस्टम का उपयोग कर रहे हैं तो @cregox, आपको करने की आवश्यकता है ssh-copy-id -i ~/.ssh/id_rsa.pub user@ipऔर यह ~/.ssh/authorized_keysध्यान में रखता है कि यदि आप रूट के रूप में लॉग इन नहीं कर सकते हैं तो आप इस फाइल को /root/.ssh/ में नहीं बनाएंगे, लेकिन यह काम करता है यदि आप कॉपी करते हैं फ़ाइल वहाँ
Rutrus

3

ध्यान दें कि रूट के माध्यम से लॉगिंग के लिए वैध कारण हैं (लेकिन क्रिप्टोग्राफ़िक कुंजियों का उपयोग करना और पासवर्ड कभी नहीं )। एक विशिष्ट उदाहरण दो सर्वरों को दूरस्थ रूप से सिंक करना है (उनमें से एक को विफल-ओवर के रूप में उपयोग किया जा रहा है)। क्योंकि संरचना समान होनी चाहिए, अक्सर रूट पासवर्ड की आवश्यकता होती है।

यहाँ एक उदाहरण का उपयोग कर तुल्यकालन के लिए यूनिसन का उपयोग किया गया है: https://serverfault.com/questions/341985/remotely-use-root-over-ssh-for-unison


2
एक सामान्य उपयोगकर्ता (क्रिप्टोग्राफ़िक कुंजियों का उपयोग करके) के साथ लॉग इन नहीं करेंगे और sudoसमूह से संबंधित होने के कारण आपको ऐसा करने की अनुमति देंगे?
NS du Toit

2

Sshd के नए संस्करणों में "बिना पासवर्ड" को "निषेध-पासवर्ड" में बदल दिया गया है।

दोनों संस्करण काम करते हैं, यदि आप कर सकते हैं तो "निषेध-पासवर्ड" का उपयोग करना सबसे अच्छा है: यह खुद को बेहतर बताता है।

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