एसएसएच सार्वजनिक कुंजी प्रमाणीकरण विशिष्ट उपयोगकर्ताओं के लिए


10

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

जवाबों:


11

आपके पास कुछ विकल्प हैं। इस उत्तर में मैं आपको एक sudoersसमूह के रूप में परिभाषित करने जा रहा हूँ ।

sshd_configमैन पेज पर एक नज़र डालें , और Matchनिर्देश देखें। यह आपको कॉन्फ़िगरेशन ब्लॉक निर्दिष्ट करता है जो केवल आपके ssh कनेक्शनों के सबसेट पर लागू होता है। आप ऐसा कुछ कर सकते हैं:

Match Group sudoers
PasswordAuthentication no
ChallengeResponseAuthentication no

आप सिद्धांत रूप में PAM कॉन्फ़िगरेशन के साथ कुछ ऐसा कर सकते हैं जो sudoersसमूह के लोगों द्वारा प्रमाणीकरण प्रयासों को विफल कर देगा । इसमें संभवतः pam_succeed_if मॉड्यूल शामिल होगा ... आप authsshd के लिए अपने कॉन्फ़िगर में ऐसा कुछ जोड़ सकते हैं :

auth        requisite     pam_succeed_if.so user notingroup sudoers quiet

इसका मतलब यह है कि sudoersसमूह में केवल लोग PAM के माध्यम से प्रमाणीकरण नहीं कर सकते हैं। ध्यान दें कि यह अप्रयुक्त है। आप कुछ समान करने के लिए pam_listfile मॉड्यूल का भी उपयोग कर सकते हैं ।


1
धन्यवाद! मुझे यह भी ध्यान रखना चाहिए कि मैच निर्देश ओपनएसएसएच 5.0 में पेश किया गया है। CentOS जैसे रूढ़िवादी वितरण के लिए, यह मूल रूप से उपलब्ध नहीं हो सकता है।
राजा

यह OpenSSH 7.7p1 को तोड़ता है - मुझे इसे पुनः आरंभ करने के लिए ChallengeResponseAuthentication निर्देश को हटाना पड़ा।
rbsec

3

एक अन्य संभावित उत्तर, @ लार्क्स के रूप में, उत्तर ने मेरे संस्करण के लिए काम नहीं किया ssh_dक्योंकि मेरा संस्करण यहां पाए गए प्रलेखन का उपयोग करता हुआ प्रतीत होता है, जो बताता है:

मिलान कीवर्ड के बाद लाइनों पर केवल कीवर्ड का एक सबसेट इस्तेमाल किया जा सकता है। उपलब्ध कीवर्ड हैं। । ।

कीवर्ड की उस सूची में शामिल नहीं है ChallengeResponseAuthentication:।

एक बहुत ही मजेदार तरीका जो मुझे मिला वह यह था कि AuthenticationMethodsआपके मामले में कौन सा काम करना है:

Match Group sudoers
AuthenticationMethods 'publickey'

AuthenticationMethods अल्पविराम से अलग किए गए मानों की एक सूची लेता है, जो उन तरीकों की एक श्रृंखला का प्रतिनिधित्व करता है जो सर्वर तक पहुंचने से पहले उपयोगकर्ता को पास करना चाहिए।

AuthenticationMethods 'publickey,password' उपयोगकर्ता को सार्वजनिक कुंजी और फिर पासवर्ड के साथ पास करने के लिए बाध्य करेगा।

अधिक पढ़ने के लिए man sshd_config

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