आप अपनी सार्वजनिक कुंजी को दूरस्थ मशीनों पर कॉपी कर सकते हैं। जब तक उनके पास सार्वजनिक कुंजी प्रमाणीकरण सक्षम होता है, और आपकी सार्वजनिक कुंजी दूरस्थ मशीन पर मौजूद होती है, तब तक आप ssh
पासवर्ड की आपूर्ति किए बिना मशीनों को कर सकते हैं।
पहले आपको एक सार्वजनिक / निजी कीपर बनाने की आवश्यकता होगी जैसे:
ssh-keygen -t rsa
संकेतों का पालन करें। जब यह पूछता है कि क्या आप पासफ़्रेज़ के साथ कुंजी की रक्षा करना चाहते हैं तो हाँ कहें! अपनी कुंजियों को पासवर्ड न करने के लिए यह बुरा अभ्यास है और मैं आपको दिखाऊंगा कि कैसे केवल एक बार पासवर्ड दर्ज करना है।
यदि आपके पास पहले से ही कीपेयर है तो आप ऊपर दिए गए स्टेप को छोड़ सकते हैं।
अब, आपकी ssh कुंजी आपके मैक पर मौजूद है ~/.ssh/id_rsa.pub
, आप इसे चलाकर किसी दूरस्थ मशीन पर स्थापित कर सकते हैं:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
ऊपर निर्दिष्ट आपके विशिष्ट सर्वर उदाहरण के लिए, कमांड इस तरह दिखाई देगी:
cat ~/.ssh/id_rsa.pub | ssh -p 2200 root@123.456.789.012 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
root@123.456.789.012
इस प्रतिलिपि को करने के लिए आपको पासवर्ड दर्ज करना होगा, लेकिन यह आखिरी बार होना चाहिए जब आपको ऐसा करने की आवश्यकता हो। मान लें कि दूरस्थ सर्वर की sshd
स्थापना सार्वजनिक-निजी कुंजी प्रमाणीकरण करने के लिए की जाती है, जब आप बॉक्स पर ssh करते हैं, तो उसे आपसे root
खाते का पासवर्ड नहीं मांगना चाहिए - इसके बजाय यह आपसे आपकी कुंजी का पासवर्ड मांगेगा । यह कैसे आप कुछ समय के लिए प्रवेश करने की जरूरत नहीं है बनाने के लिए पर पढ़ें।
प्रत्येक मशीन के लिए उपरोक्त को दोहराएं जिसे आप पासवर्ड के बजाय अपनी कुंजी के साथ ssh करना चाहते हैं।
कृपया ध्यान दें, जो कोई भी आपकी ~/.ssh/id_rsa
फ़ाइल को पकड़ लेता है , वह इस मशीन को बता सकता है जैसे root
कि रिमोट मशीन के लिए पासवर्ड की आपूर्ति किए बिना। कुंजी फ़ाइल की सुरक्षा करने वाले पासवर्ड यह सुनिश्चित करते हैं कि उन्हें उस कुंजी का उपयोग करने के लिए पासवर्ड जानना होगा। सुनिश्चित करें कि फ़ाइल सुरक्षित है। अपने मैक पर डिस्क एन्क्रिप्शन का उपयोग करें और फ़ाइल और ~/.ssh/
निर्देशिका पर अनुमतियाँ चुस्त रखें।
हर बार पासवर्ड दर्ज किए बिना कुंजी का उपयोग करना आसान बनाने के लिए, ओएस एक्स ssh-agent
आपकी मशीन पर पृष्ठभूमि में एक प्रक्रिया चलाता है । यह एजेंट पहली बार आपके द्वारा इस्तेमाल किए जाने वाले कीपेयर को कैश कर देगा ताकि आपको केवल एक बार अपना पासवर्ड दर्ज करना पड़े। यदि आप केवल अपने मैक को सोते हैं, तो इसे कभी भी पुनरारंभ न करें, आप अपना पासवर्ड दर्ज करने की आवश्यकता के बिना लंबे समय तक जा सकते हैं।
आप अपनी सभी SSH कुंजियों को ssh-agent
चलाने के साथ प्री-कैश कर सकते हैं :
ssh-add
अब आपको केवल कुंजी पासवर्ड याद रखना होगा , न कि कई अलग-अलग खाता पासवर्ड। मैं आमतौर पर अपने मुख्य पासवर्ड को 1Password (कोई संबद्धता नहीं) में रखता हूं , आगे यह भी सरल करता है कि मुझे कितने पासवर्ड याद रखने की आवश्यकता है। तब मैं उन्हें 1Password में देखता हूं और उन्हें टर्मिनल में कट-पेस्ट करता हूं जिस विषम समय में मैं अपने मैक को पुनरारंभ करता हूं और मेरे चलने ssh-agent
को फिर से चालू करता हूं ।
यदि आप इस प्रश्न में अपनी कुंजी की प्रतिलिपि टर्मिनल मशीनों के साथ Terminal.app कनेक्शन प्रबंधन समाधान के साथ जोड़ते हैं , तो आपके पास GUI कनेक्शन अनुभव के लिए PuTTY के बहुत करीब होगा।
सर्वर साइड पर, जाँच करें /etc/ssh/sshd_config
और सुनिश्चित करें:
PubkeyAuthentication yes
कॉन्फ़िगरेशन में सक्षम है (यह OpenSSH में डिफ़ॉल्ट रूप से है)। आप भी सेट करना चाह सकते हैं:
PasswordAuthentication no
जब आप वहां होते हैं तो पासवर्ड-आधारित प्रमाणीकरण अक्षम होता है और कुंजी मशीन तक पहुंचने का एकमात्र तरीका बन जाती है।
यदि आप कॉन्फ़िगरेशन फ़ाइल में कोई परिवर्तन करते हैं, तो आपको मशीन पर sshd को पुनरारंभ करना होगा।