1 उपयोगकर्ता के लिए मेरे मैक में ssh-key-only लॉगिन सक्षम करें


21

मेरे पास एक मैकबुक एयर है जिसे मैं बिना पासवर्ड के रिमोट एसएसएच एक्सेस की अनुमति देना चाहूंगा। मैंने एक उपयोगकर्ता बनाया है जिसे remotepairमैंने लॉग इन किया है और सत्यापित किया है कि मैं मैक का उपयोग कर सकता हूं। मैंने इस उपयोगकर्ता को "लॉगिन हटाएं" सेवा की अनुमत उपयोगकर्ता सूची भी जोड़ दी है और सेवा चालू कर दी है। यह सब "साझाकरण" नियंत्रण कक्ष में किया गया था।

मैंने दूसरे कंप्यूटर की सार्वजनिक कुंजी प्राप्त कर ली है और इसे फ़ाइल में जोड़ दिया है /Users/remotepair/.ssh/authorized_keys। जब अन्य कंप्यूटर ssh remotepair@<my ip>मैं अभी भी एक पासवर्ड संकेत मिलता है।

मैं इस पासवर्ड को कैसे अक्षम करूं?


1
मैं आपके प्रश्न शीर्षक में "SSH की-ऑनली ऑथेंटिकेशन" जोड़ने की सलाह देता हूं - जिस तरह से यह पढ़ता है वह एक नियमित GUI लॉगिनविंडो लॉगिन की तरह लगता है।
NReilingh

जवाबों:


27

पासवर्ड प्रमाणीकरण को अक्षम करने के लिए आपको संपादित करने की आवश्यकता है /etc/sshd_config। इन Terminal:

sudo vim /etc/sshd_config

(या अपने पसंदीदा संपादक से बदलें)

लाइन के लिए देखो:

#ChallengeResponseAuthentication yes

और इसे बदलें:

ChallengeResponseAuthentication no

यही है, #शुरुआत में हटा दें और बदल yesदें no

सभी बाद के ssh लॉगिन अब आपको एक ssh कुंजी का उपयोग करने की आवश्यकता होगी और पासवर्ड के लिए संकेत नहीं देंगे। यदि आपके पास कोई स्थानीय पहुँच नहीं है, तो ऐसा करने से पहले अपनी ssh कुंजी सुनिश्चित करें! Ssh डेमॉन या कुछ भी पुनः आरंभ करने की आवश्यकता नहीं है क्योंकि यह प्रत्येक नए आने वाले कनेक्शन की मांग पर शुरू किया गया है। ध्यान दें कि आप एक PasswordAuthenticationपंक्ति भी देख सकते हैं , लेकिन यह noपहले से ही चूक है ।

यदि आपकी ssh कुंजियाँ काम नहीं कर रही हैं, तो यह वास्तव में एक अलग मुद्दा है, लेकिन यह इस सवाल का जवाब देता है क्योंकि यह अब सामने आया है :)


मुझे भी उपयोगकर्ता को AllowUser सेटिंग में जोड़ना होगा। मैं केवल अनुमान लगा सकता हूं कि GUI सेटअप ने इस टेक्स्ट लाइन को भी संशोधित नहीं किया है।
जेसन

7
ध्यान दें, मैक ओएस एक्स के बाद के संस्करणों में (निश्चित रूप से एल कैपिटान में), sshd_config को स्थानांतरित कर दिया गया है /etc/ssh/
zelk

2
ध्यान दें, MacOS Sierra (v10.12.x) के रूप में, के लिए डिफ़ॉल्ट PasswordAuthenticationबदल गया है yes, इसलिए इसे बदलना सुनिश्चित करें no
ट्रैविस क्लार्क

3

MacOS सिएरा (विशेष रूप से 10.12.6) के उत्तर का अद्यतन करने के लिए, ऐसा प्रतीत होता है कि विन्यास फाइल अब है /etc/ssh/sshd_config

पासवर्ड प्रमाणीकरण को पूरी तरह से अक्षम करने के लिए 2 लाइनों को अनियोजित + संशोधित किया जाना चाहिए: (ये डिफ़ॉल्ट sshd_configफ़ाइल में 62, समावेशी के माध्यम से 57 लाइनें हैं )

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication no

जैसा कि पहले उल्लेख किया गया है, आप सिस्टम वरीयताएँ / GUI से ssh एक्सेस को सक्षम / अक्षम कर सकते हैं, और कॉन्फ़िगरेशन को संपादित करने के बीच डेमॉन का कोई पुनरारंभ आवश्यक नहीं है।


1

आपको शामिल निर्देशिकाओं की अनुमतियों की जांच करनी चाहिए: /Users/remotepair/और /Users/remotepair/.ssh, उन्हें "अन्य" उपयोगकर्ताओं द्वारा लिखने की अनुमति नहीं देनी चाहिए। मेरे .sshपास केवल स्वामी के लिए एक्सेस अधिकार हैं।

इसके अलावा, रिमोट सिस्टम पर, यह ssh -v remotepair@yoursystemदेखने के लिए कि कौन से प्राधिकरण तरीकों की अनुमति है और प्रयास किया गया है। तलाश कर रहे हैं Authentications that can continue: publickey,password,keyboard-interactive। शायद आपको RSAAuthenticationअपने सिस्टम पर सक्षम होना चाहिए ।


1

यहां एक परीक्षण प्रणाली पर, SSH प्रॉम्प्ट को अक्षम करने के लिए निम्नलिखित दो लाइनों को जोड़ना आवश्यक है /etc/sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication no

sshd_configनिम्नलिखित पंक्ति को जोड़ने की सलाह देने वाली टिप्पणियां भी:

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