मैं घर पर आलसी हूं और अपने घर की मशीनों के लिए पासवर्ड प्रमाणीकरण का उपयोग करता हूं । मैं कुंजी आधारित प्रमाणीकरण पर जाने के लिए तैयार हूं । यह कैसे करना है, इस पर वेब पर कई विकल्प हैं, जिसमें कैटिंग करना और फिर कुंजी को एसएचएस करना, कुंजी को सीधे ऊपर खींचना आदि शामिल हैं ।
मैं एक कुंजी को कॉपी करने के लिए सबसे आसान और अनुशंसित तरीका ढूंढ रहा हूं, उम्मीद है कि उबंटू एसएसएच पैकेज में कहीं एक सुविधा आवरण है?
द ssh-copy-id आदेश (में ओपनएसएसएच-क्लाइंट पैकेज और डिफ़ॉल्ट रूप से स्थापित) ठीक यही करता है:
ssh-copy-id user@hostname.example.com
आपकी डिफ़ॉल्ट पहचान (उपयोग) की सार्वजनिक कुंजी की प्रतिलिपि बनाता है -i identity_file अन्य पहचान के लिए) दूरस्थ होस्ट के लिए ।
डिफ़ॉल्ट पहचान आपकी "मानक" एसएसएच कुंजी है । इसमें आपकी दो फाइलें (सार्वजनिक और निजी कुंजी) शामिल हैं ~/.ssh निर्देशिका, सामान्य रूप से नामित identity, id_rsa, id_dsa, id_ecdsa या id_ed25519 (और साथ ही .pub), कुंजी के प्रकार के आधार पर । यदि आपने एक से अधिक एसएसएच कुंजी नहीं बनाई है, तो आपको पहचान निर्दिष्ट करने के बारे में चिंता करने की ज़रूरत नहीं है, एसएसएच-कॉपी-आईडी बस इसे स्वचालित रूप से चुन लेगा ।
यदि आपके पास कोई पहचान नहीं है, तो आप उपकरण के साथ एक उत्पन्न कर सकते हैं ssh-keygen.
इसके अलावा, यदि सर्वर डिफ़ॉल्ट एक से अलग पोर्ट का उपयोग करता है (22) आपको इस तरह से उद्धरण चिह्नों का उपयोग करना चाहिए (स्रोत):
मैंने इसे अभी भी यहां पोस्ट करने के लिए सोचा, क्योंकि यह एक अच्छा उदाहरण है कि इसमें क्या हासिल किया जा सकता है शेल कोड की शक्ति के साथ ssh. लेकिन का उपयोग कर ssh-copy-id निश्चित रूप से इसे ठीक से करने का एक सुरक्षित तरीका है!
ध्यान दें कि यदि फ़ोल्डर .ssh पहले से मौजूद नहीं है, उपरोक्त आदेश विफल हो जाएगा । इसके अलावा, न्यूनतम संभव अनुमति सेट करने के लिए फ़ाइल बनाते समय यह बेहतर हो सकता है (मूल रूप से केवल मालिक के लिए पढ़ें-लिखें) । यहाँ एक अधिक उन्नत कमांड है:
लॉग इन करने के बाद, बटन पर क्लिक करें बगल में एसएसएच कुंजी:
उस फ़ील्ड में अपनी सार्वजनिक कुंजी फ़ाइल की सामग्री पेस्ट करें (टिप्पणी सहित) । ऐसी कुंजी दिखती है:
ssh-rsa AAAAB3Nza .... UyDOFDqJp lekensteyn
यहाँ, ssh-rsa इंगित करता है कि कुंजी एक आरएसए कुंजी है, AAAAB3Nza .... UyDOFDqJp वास्तविक कुंजी है और lekensteyn टिप्पणी है ।
दबाकर कुंजी सहेजें सार्वजनिक कुंजी आयात करें
यदि सब कुछ ठीक रहा, तो आपकी कुंजी अब नीचे सूचीबद्ध होनी चाहिए एसएसएच कुंजी:
पैकेज ssh-import-id मशीन पर स्थापित करने की आवश्यकता है जिसे रिमोट से एक्सेस करना होगा । इस पैकेज के साथ एक साथ स्थापित किया गया है openssh-server पैकेज के रूप में यह एक अनुशंसित पैकेज है openssh-server. यह सुनिश्चित करने के बाद कि ssh-import-id क्लाइंट मशीन पर स्थापित किया गया है, चलाएं:
ssh-import-id [launchpad account name]
यह एचटीटीपीएस पर लॉन्चपैड सर्वर से सार्वजनिक कुंजी डाउनलोड करेगा जो आपको एमआईटीएम हमलों से बचाता है ।
उबंटू ल्यूसिड पर और इससे पहले, आप इसे पूरा कर सकते हैं:
ssh-copy-id ठीक यही करता है । मुझे यकीन नहीं है कि यहां कुछ अन्य उत्तर गलत जानकारी क्यों जोड़ते हैं । सहायता निम्नलिखित दिखाती है:
~$ ssh-copy-id -hUsage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname -f: force mode -- copy keys without trying to check if they are already installed -n: dry run -- no keys are actually copied -h|-?: print this help
मैंने उबंटू 18.04 क्लाइंट पर सेंटोस 7.6 सर्वर के साथ निम्नलिखित की कोशिश की और यह एक आकर्षण की तरह काम किया । उदाहरण एक कस्टम पोर्ट का उपयोग करके दिखाता है 2222, और एक सार्वजनिक कुंजी निर्दिष्ट करना ~/.ssh/path-to-rsa.pub
कमांड चलाने से पहले, मैंने वास्तव में इस्तेमाल किया -n ड्राई रन करने के लिए अंत में स्विच करें जिसने पुष्टि की कि कमांड इरादा के अनुसार काम करेगा । एक बार जब मैंने इसकी पुष्टि की तो मैंने ऊपर के रूप में फिर से कमांड चलाया, बिना -n स्विच.