टर्मिनल में SSH क्रेडेंशियल कैसे स्टोर करें


33

मैं मैकबुक के लिए नया हूं और एल कैपिटन चला रहा हूं।

मैं एक पीसी से मैकबुक पर अपनी मशीन के उपयोग को माइग्रेट कर रहा हूं। मैं लंबे समय तक एक पीसी पर PuTTY और SuperPuTTY का उपयोगकर्ता हूं।

मैं मैकबुक टर्मिनल में अपने वेब सर्वर पर लॉगिन क्रेडेंशियल बनाना और सहेजना चाहता हूं, जैसे मैंने पीसी पर सुपरपोटी में किया है।

क्या मैक टर्मिनल में वेब सर्वर लॉगिन क्रेडेंशियल को सहेजना संभव है?

यहाँ मेरा कुल उद्देश्य है:

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

ssh -p 2200 root@123.456.789.012
Password: ****************************************************************

मैं 5 अलग-अलग वेब सर्वरों को प्रबंधित करता हूं और उनसे जुड़ता हूं, इसलिए एक छोटी / तेज कनेक्शन विधि में लॉगिन क्रेडेंशियल्स को व्यवस्थित करना और व्यवस्थित करना एक बहुत बड़ा समय बचाने वाला होगा। विशेष रूप से इसलिए क्योंकि मेरे पासवर्ड 64-वर्ण स्ट्रिंग्स हैं।


मैंने टिप्पणियों को शुद्ध कर दिया है क्योंकि टैमी के संपादन संस्करण तीन ने इसे स्पष्टता और उपयोगिता के संदर्भ में पार्क से बाहर खटखटाया। बहुत बढ़िया!
bmike

जवाबों:


50

आप अपनी सार्वजनिक कुंजी को दूरस्थ मशीनों पर कॉपी कर सकते हैं। जब तक उनके पास सार्वजनिक कुंजी प्रमाणीकरण सक्षम होता है, और आपकी सार्वजनिक कुंजी दूरस्थ मशीन पर मौजूद होती है, तब तक आप 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 को पुनरारंभ करना होगा।


धन्यवाद @IamC - यह उत्तर बहुत अच्छा है और मुझे यकीन है कि काम करेगा। मैंने आज सुबह मैक चैनल पर एक स्टैक एक्सचेंज अकाउंट बनाया, यह देखने के लिए कि क्या मुझे टर्मिनल में या मैक पर लॉगिन क्रेडेंशियल्स को बचाने के लिए एक त्वरित और आसान तरीका मिल सकता है । ऐसा लगता है कि ऐसा करना बेहद जटिल है और मेरे लिए व्यवहार्य समाधान नहीं है। यहाँ क्यों है: <अधिक>
टैमी

<cont।> मेरे पास कई वेब सर्वरों में कमांड लाइन एक्सेस है (सभी में 5)। मेरे पास इन वेब सर्वर तक SSH (PuTTY के माध्यम से) के साथ अपने कार्य कार्यालय में एक डेस्कटॉप पीसी है। मेरे पास इन वेब सर्वरों तक SSH (PuTTY के माध्यम से) के साथ अपने घर कार्यालय में एक बड़ा लैपटॉप पीसी है। मैंने अभी यात्रा और साइट पर क्लाइंट के लिए मैकबुक एयर खरीदा है। यह उस विशेष आवश्यकता के लिए एकदम सही है। मैं सर्वर पर SSH कनेक्शन को उतना आसान बनाने की उम्मीद कर रहा था, जितना पीसी पर PuTTY और SuperPuTTY के माध्यम से। <अधिक>
टैमी

<cont।> लेकिन मैं सार्वजनिक व्यावसायिक कुंजी मार्ग से नहीं जा सकता क्योंकि मुझे अपने घर और कार्य कार्यालय पीसी पर पुट्टी के काम करने के तरीके को बदलने की आवश्यकता होगी। यह मैक के काम को मेरे पीसी की तरह बनाने के लिए बहुत कठिन हो गया है, इसलिए मुझे लगता है कि मुझे अपने मैक से कनेक्ट करने के लिए कॉपी और पेस्ट प्रक्रिया के साथ रहना होगा। आपके सहयोग के लिए धन्यवाद। आपकी प्रक्रिया को सरल बनाने की कोशिश में आपकी मदद करने के लिए मैं आपकी बहुत सराहना करता हूं।
टैमी

2
@tammy आप PasswordAuthentication yesसर्वर-साइड पर छोड़ सकते हैं और PuTTY आपके विंडोज मशीन पर हमेशा की तरह काम करता रहेगा। यह या तो / या परिदृश्य नहीं है - आप सर्वर पर दोनों प्रकार के प्रमाणीकरण की अनुमति दे सकते हैं। PuTTY भी इस FWIW की तरह सार्वजनिक / निजी प्रमुख प्राधिकरण का समर्थन करता है। आप अपनी ~/.ssh/id_rsa*फ़ाइलों को अपनी विंडोज मशीन पर कॉपी कर सकते हैं और उन्हें सर्वर पर प्रमाणीकरण के लिए PuTTY में आयात कर सकते हैं। पुट्टी, हुड के नीचे, ठीक उसी OpenSSH पुस्तकालयों के रूप में कनेक्ट करने के लिए उपयोग करता है sshOS X पर
इयान सी

1
ssh-addअभी भी सिएरा (OS X 10.12) में भी काम करता है। धन्यवाद
SaxDaddy

4

आप पासवर्ड को बचाने के लिए sshpass का उपयोग कर सकते हैं और आपको हर समय सम्मिलित नहीं करना पड़ेगा जो कि एक अच्छा अभ्यास (सुरक्षा समस्या) नहीं है।

मैक ओएस एक्स इंस्टॉलेशन के निर्देशों का पालन करें: https://gist.github.com/arunoda/7790979 पर

जब आपने sshpass रन किया है sshpass -p "YOUR_PASSWORD" ssh -o StrictHostKeyChecking=no root@123.456.789.012:2200

अपने 5 वेब सर्वरों के लिए एक ही काम करें और आपको हर बार पासवर्ड डालने की आवश्यकता नहीं होगी।


1
मुझे लगता है कि यह इस पर बहुत गूंगा है। मुझे लगता है कि PuTTY और SuperPuTTY के साथ एक पीसी का उपयोग करना मुझे बेस कमांड लाइन से बहुत दूर करता है। मैंने अपने समग्र उद्देश्य के साथ अपने OQ को संपादित किया। एक नज़र देख लो।
टैमी

मैं अब मान रहा हूं कि आप root@123.456.789.012 से कनेक्ट हो सकते हैं और बस प्रक्रिया को स्वचालित करना चाहते हैं। आप मूल रूप से हर बार ssh -p 2200 root@123.456.789.012और टाइप नहीं करना चाहते हैं Password: **********************?
enzo

ssh-copy-idमानक OS X वितरण का हिस्सा नहीं है।
इयान सी।

@IanC। मुझे लगता है कि मैं भूल गया कि मैंने इसे काढ़ा के साथ स्थापित किया है। मेरे जवाब को संशोधित करेगा
enzo

आपको यह @maetsoh मिला - ठीक यही मैं यहां हासिल करना चाहता हूं।
टैमी

1

सार्वजनिक / निजी कुंजी सामान के अलावा, .sh / config फाइल को ssh कमांड के उपयोग में आसानी के लिए कॉन्फ़िगर किया जा सकता है, जैसे कि एलियास, डिफोट यूजर / पोर्ट प्रति सर्वर, ssh विकल्प, प्रॉक्सी कमांड ...

मूल रूप से कुछ भी आप एक ssh कमांड में डाल सकते हैं जटिल इस फ़ाइल में भी हो सकता है।


0

मैंने मैक को पोटीनी को एक देशी एप्लिकेशन बंडल के रूप में चित्रित किया है, इसलिए यदि आपके तकनीकी उपयोगकर्ता नहीं हैं तो मैकपोर्ट या टर्मिनल की कोई आवश्यकता नहीं है।

स्क्रीन-शॉट्स के साथ अधिक जानकारी यहाँ है: http://www.wine-reviews.net/2016/08/putty-for-mac-os-x-now-available.html

चीयर्स,


अलग पूछने के लिए आपका स्वागत है! सीधे प्रश्न का उत्तर देना सुनिश्चित करें। यदि आप किसी ऐसे उत्पाद का उल्लेख करते हैं जिस पर आप काम करते हैं, तो यह ठीक है, लेकिन कई पदों पर एक ही मार्केटिंग ब्लर्ब को चिपकाने के विपरीत विषय पर होने की कोशिश करें।
bmike
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.