मेरी SSH की सार्वजनिक कुंजी कैसे निर्यात करें?


12

मुझे दो सर्वरों के बीच ssh सत्र सेट करने की आवश्यकता है और उपयोगकर्ता नाम और पासवर्ड में स्क्रिप्ट को हर बार भरना नहीं चाहते हैं।

हालाँकि मुझे यह पता नहीं लग सकता है कि SSH सर्वर कहाँ से अपने कॉन्फिगर का उपयोग कर रहा है।

bash-2.05# ssh -V
Sun_SSH_1.1, SSH protocols 1.5/2.0, OpenSSL 0x0090700f

मेरे पास दोनों / etc / ssh / और ~ / .ssh / में सर्टिफिकेट फाइल हैं। मैं SSH के लिए केवल एक ही कॉन्फिगर फाइल पा सकता हूं और यह / etc / ssh / ssh_config में है, लेकिन इसमें कोई डेटा नहीं है (सब कुछ टिप्पणी की गई है)।

क्या किसी को पता है कि मैं कैसे पता लगा सकता हूं कि प्रमाण पत्र कहाँ संग्रहीत है, या मैं इसे कैसे निर्यात कर सकता हूं ताकि मैं इसे दूसरे सर्वर पर स्थानांतरित कर सकूं? मैं उम्मीद कर रहा था कि विन्यास फाइल मुझे जवाब देगी, लेकिन वे बिना किसी मदद के बहुत कम प्रदान करते हैं।

जवाबों:


17

मान लें कि आप 'सर्टिफिकेट' द्वारा उपयोगकर्ता-स्तर पर सार्वजनिक-कुंजी-प्रमाणीकरण का मतलब है और आपने उन्हें ssh-keygenडिफ़ॉल्ट स्थान के साथ उपयोग करके बनाया है, तो उन्हें उस स्थान पर होना चाहिए जहां आपका ssh-client उन्हें ढूंढेगा। कुंजी में एक निजी भाग होता है, जिसे आमतौर पर ~/.ssh/id_rsaएक सार्वजनिक भाग में संग्रहीत किया जाता है ~/.ssh/id_rsa.pub। पिछले एक को आमतौर पर दूरस्थ सर्वर पर स्थानांतरित करना होगा ~/.ssh/authorized_keys

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

ध्यान दें, कि /etc/ssh/ssh_configग्राहक के लिए है। सर्वर पर आपको देखना होगा /etc/ssh/sshd_config। आपके सेटअप में दोनों सर्वर ssh- क्लाइंट और ssh- सर्वर दोनों के रूप में काम करेंगे, इसलिए आपको दोनों फाइलों को दोनों सिरों पर देखना होगा।


काम कर गया। धन्यवाद। केवल एक चीज जो मुझे करनी थी, वह थी मेरे क्लाइंट पर मुझे निर्दिष्ट करना था -आई (आइडेंटिटी) परम को प्राइवेट की तरफ इशारा करना।
क्रिस डेल

2

आपको उपयोगकर्ता के लिए ssh सार्वजनिक कुंजी खोजने की आवश्यकता है जो स्क्रिप्ट के लिए लॉगिन उपयोगकर्ता होगा।

उदाहरण के लिए, यदि मेरे पास सर्वरए और सर्वरबी है, तो मैं निम्नलिखित काम करूंगा।

sudo adduser scriptrunner
...
sudo su - scriptrunner
ssh-keygen
...
cat .ssh/id_rsa.pub
ssh-rsa AAAAB3Nza...... scriptrunner@serverA

तो सर्वरबी पर भी कुछ ऐसा ही करें

उसके बाद सर्वरए पर, सर्वरबी के स्क्रिप्टरनर उपयोगकर्ता की सार्वजनिक कुंजी को हटा देता है /home/scriptrunner/.ssh/authorized_keys

और सर्वरबी पर विपरीत करते हैं (सर्वरए के स्क्रिप्टरनर उपयोगकर्ता /home/scriptrunner/.ssh/authorized_keysको सर्वरबी में अधिकृत_की पर प्रयोग करके)

तब आपको ssh scriptrunner@serverAकुंजी का उपयोग करके सर्वरबी से करने में सक्षम होना चाहिए , और इसके विपरीत।

आप ssh-copy-idअधिकृत_की बिट्स करने के लिए भी उपयोग कर सकते हैं ।


1

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

यदि आप संबंधित उपयोगकर्ता के रूप में लॉग इन हैं, तो अपने होम डायरेक्टरी पर जाएं और रन करें

ssh-keygen

सभी चूक स्वीकार करें, और ~ / .ssh / id_rsa और ~ / .ssh / id_rsa.pub में एक नई कुंजी जोड़ी बनाई जाएगी। अब सार्वजनिक कुंजी को कॉपी करें और लक्ष्य मशीन पर लक्ष्य उपयोगकर्ता खाते की ~ / .sh / अधिकृत_की फ़ाइल में पेस्ट करें। फिर लक्ष्य मशीन पर सार्वजनिक कुंजी प्रमाणीकरण सक्षम करें (in / etc / ssh / sshd_config) और आपको जाने के लिए अच्छा होना चाहिए।

नोट : जब आप पहली बार करते हैं तो इस प्रक्रिया में कई संभावित नुकसान होते हैं। सभी अनुमतियां सही होनी चाहिए, और फाइलें सही स्थानों पर होनी चाहिए। यह शायद सबसे अच्छा है अगर आप इस तरह से एक HowTo का पालन करें ।

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