कुछ उपयोगकर्ताओं के लिए SSH को पासवर्ड से कैसे निष्क्रिय करें?


165

लिनक्स (डेबियन स्क्वीज़) पर मैं कुछ उपयोगकर्ताओं (चयनित समूह या रूट को छोड़कर सभी उपयोगकर्ताओं) को पासवर्ड का उपयोग करके SSH लॉगिन को अक्षम करना चाहूंगा। लेकिन मैं उनके लिए प्रमाणपत्र का उपयोग करके लॉगिन को अक्षम नहीं करना चाहता।

संपादित करें: विस्तृत उत्तर के लिए बहुत बहुत धन्यवाद! किसी कारण से यह मेरे सर्वर पर काम नहीं करता है:

Match User !root
PasswordAuthentication no

... लेकिन आसानी से बदला जा सकता है

PasswordAuthentication no
Match User root
PasswordAuthentication yes

शायद यह आपके इंडेंटेशन की वजह से है?
नील

7
यह ध्यान देने योग्य है कि मैच के तहत वे लाइनें फ़ाइल के अंत में होनी चाहिए
zidarsk8

1
जड़ भी मेरे लिए काम नहीं करता है। दूसरे दृष्टिकोण ने चाल चली।
नाथेन्हो

मैंने उन मामलों को देखा है जहां Match User "!root,*"काम किया था।
रोमन होके

जवाबों:


179

प्रयास करें Matchमें sshd_config:

Match User user1,user2,user3,user4
    PasswordAuthentication no

या समूह द्वारा:

Match Group users
    PasswordAuthentication no

या, जैसा कि टिप्पणी में उल्लेख किया गया है, नकारात्मक द्वारा:

Match User !root
    PasswordAuthentication no

ध्यान दें कि मैच प्रभावी है "जब तक कि एक और मैच लाइन या फ़ाइल का अंत न हो।" (इंडेंटेशन महत्वपूर्ण नहीं है)


4
Match user !rootइस मामले के लिए पसंद करें
84104

1
बहुत बढ़िया, मैं मैच सिंटैक्स के बारे में नहीं जानता था। एक सुझाव, हालांकि, अगर यह एक सार्वजनिक सामना करने वाला सर्वर है, तो मैं एसएसएच के माध्यम से रूट लॉगिन की अनुमति नहीं दूंगा। शायद बहुत बड़ी बात नहीं अगर यह आंतरिक है ..
Safado

4
@SpacemanSpiff यह है कि एक) मजबूत पासवर्ड और b) डेनिहोस्ट्स / फेल 2बन किसके लिए हैं।
ceejayoz

2
@ deed02392 यदि आप चाहें, तो आप वास्तव में एक मजबूत पासवर्ड की कुंजी पर विचार कर सकते हैं।
सिजयोज़

4
यह इतना मजबूत है कि यह एक ही बॉल-पार्क में नहीं है, यह मेरी बात थी। पासवर्ड प्रमाणीकरण को रूट के लिए भी अक्षम किया जाना चाहिए और केवल लॉगिन के लिए अनुमत कुंजी।
deed02392

21

Matchsshd_configअच्छी तरह से काम करता है। Match allयदि आप ओपनश 6.5p1 या इससे ऊपर का उपयोग कर रहे हैं तो आपको मैच ब्लॉक को समाप्त करने के लिए उपयोग करना चाहिए । उदाहरण:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all

यह मेरे लिए काम नहीं किया ...
दिमित्री

3

कुछ तरीके हैं जो आप ऐसा कर सकते हैं - पहला, आप अलग-अलग पोर्ट पर अलग-अलग पोर्ट पर एक दूसरे sshd डेमॉन को चला सकते हैं - यह थोड़ा हैक है, लेकिन कुछ चेरोट काम के साथ यह ठीक काम करना चाहिए।

इसके अलावा, आप पासवर्ड प्रमाणीकरण की अनुमति दे सकते हैं, लेकिन सभी उपयोगकर्ता के लिए पासवर्ड लॉक कर सकते हैं। लॉक पासवर्ड वाले उपयोगकर्ता अभी भी सार्वजनिक कुंजियों के साथ प्रमाणित कर सकेंगे।


-1

आप बस / etc / ssh / sshd_config फ़ाइल पर जा सकते हैं और एक लाइन जोड़ सकते हैं

हम होस्टेसलो या होस्टेसडेन / फोल्डर / फोल्डर में स्थित फाइलों के उपयोग से मेजबानों के एक विशेष सेट के लिए लॉगिन की अनुमति / खंडन कर सकते हैं


-1

कुछ सुरक्षा कारणों के कारण, आपको कुछ उपयोगकर्ता SSH को लिनक्स बॉक्स तक पहुँच को रोकना पड़ सकता है।

Sshd_config फ़ाइल को संपादित करें, लिनक्स वितरण के आधार पर स्थान कभी-कभी अलग होगा, लेकिन यह आमतौर पर / etc / ssh / में होता है।

रूट के रूप में लॉग इन करते समय फ़ाइल खोलें:

# vi /etc/ssh/sshd_config

कॉन्फ़िगरेशन फ़ाइल के अंत में एक पंक्ति डालें: -

DenyUsers username1 username2 username3 username4

इसे सहेजें और SSH सेवाओं को पुनरारंभ करें। मूल रूप से username1, username2, username3 और username4 SSH लॉगिन अस्वीकृत है।

उसी को पुनः आरंभ करने के लिए नीचे कमांड चलाएं: -

# systemctl restart sshd

आवश्यकता पड़ी है। कृपया उन उपयोगकर्ताओं से ssh लें और आपकी त्रुटि "एक्सेस अस्वीकृत" हो जाएगी


1
सवाल पासवर्ड लॉगिन को अक्षम करने (लेकिन मुख्य प्रमाणीकरण के साथ लॉगिन रखने) के बारे में था।
गेराल्ड श्नाइडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.