सवाल आप किसी अन्य उपयोगकर्ता के लिए एसएसएच कुंजी कैसे बनाते हैं?


मैं किसी अन्य उपयोगकर्ता के लिए एसएसएच कुंजी बनाने की कोशिश कर रहा हूं। मैं रूट के रूप में लॉग इन हूँ। क्या मैं बस ssh-keygen द्वारा जेनरेट की गई फ़ाइलों को संपादित कर सकता हूं और उस उपयोगकर्ता को रूट बदल सकता हूं जिसे मैं चाहता हूं?


76
2017-10-22 19:24


मूल


यदि आप उपयोगकर्ता के लिए कुंजी उत्पन्न करते हैं तो आपको निजी कुंजी प्राप्त करने का एक सुरक्षित तरीका भी होना चाहिए और यह उपयोगकर्ता को पास वाक्यांश है। उपयोगकर्ता कुंजी को उत्पन्न करने के लिए बहुत बेहतर है और फिर आपको सार्वजनिक कुंजी ईमेल करें। - Iain
लेकिन क्या यह मुश्किल नहीं है कि आप पासवर्ड लॉग इन की अनुमति नहीं देते? अगर मैं केवल कुंजी हूं, और मैंने एक नया उपयोगकर्ता स्थापित किया है, तो वे अपनी कुंजी सेट अप करने के लिए लॉगिन नहीं कर सकते हैं। - LVLAaron


जवाब:


आप इसके साथ कर सकते हैं ssh-keygenहालांकि, याद रखें कि निजी कुंजी उपयोगकर्ता के लिए निजी है, इसलिए आपको इसे सुरक्षित रखने के लिए बहुत सावधान रहना चाहिए- उपयोगकर्ता के पासवर्ड के रूप में सुरक्षित। या यहां तक ​​कि सुरक्षित, क्योंकि उपयोगकर्ता को पहले लॉगिन पर इसे बदलने की आवश्यकता नहीं है।

ssh-keygen -f anything वर्तमान निर्देशिका में दो फाइलें बनाता है। anything.pub सार्वजनिक कुंजी है, जिसे आप उपयोगकर्ता के लिए जोड़ सकते हैं ~/.ssh/authorized_keys किसी भी गंतव्य सर्वर पर।

दूसरी फाइल, जिसे अभी बुलाया जाता है anything निजी कुंजी है और इसलिए उपयोगकर्ता के लिए सुरक्षित रूप से संग्रहीत किया जाना चाहिए। डिफ़ॉल्ट स्थान होगा ~username/.ssh/id_rsa (यहां नामित है id_rsa, जो आरएसए कुंजी के लिए डिफ़ॉल्ट है)। याद रखें कि .ssh निर्देशिका किसी भी व्यक्ति द्वारा पठनीय या लिखने योग्य नहीं हो सकती है, लेकिन उपयोगकर्ता की होम निर्देशिका किसी भी व्यक्ति द्वारा लिखित नहीं हो सकती है। इसी तरह, निजी कुंजी पर भी अनुमतियां तंग होनी चाहिए, साथ ही: केवल उपयोगकर्ता के लिए पढ़ें / लिखें, और .ssh निर्देशिका और निजी कीफाइल उपयोगकर्ता के स्वामित्व में होना चाहिए।

तकनीकी रूप से आप कहीं भी कुंजी स्टोर कर सकते हैं। साथ में ssh -i path/to/privatekey कनेक्ट करते समय आप उस स्थान को निर्दिष्ट कर सकते हैं। फिर, उचित स्वामित्व और अनुमतियां महत्वपूर्ण हैं और यदि आपके पास सही नहीं है तो एसएसएच काम नहीं करेगा।


74
2017-10-22 19:35



यह अभिव्यक्त करने के लिए +1 कि यह एक निजी (!) कुंजी है - mailq
आप मान रहे हैं कि उपयोगकर्ता एक वास्तविक व्यक्ति है। यदि लॉगिन एक गैर-इंटरैक्टिव उपयोगकर्ता है जो उपयोगिता कार्यों को निष्पादित करने के लिए उपयोग किया जाता है (उदाहरण के लिए दूरस्थ सर्वर पर चल रही मेन स्क्रिप्ट चलाना), तो हां, तो आप शायद उस उपयोगकर्ता के लिए मैन्युअल रूप से कुंजी उत्पन्न करेंगे। बेशक, इसका अपना सुरक्षा प्रभाव है, लेकिन यह एक और कहानी है। - Rilindo
@Rilindo ssh -i गैर-विशेषाधिकार प्राप्त प्रक्रिया के लिए एक निजी कुंजी के लिए मैं कुछ स्वचालित rsync बैकअप प्रक्रियाओं से अधिक कैसे संभालता हूं। :) - Shadur
मुझे उस तरह का जवाब पसंद नहीं है जो कहता है "आपको ऐसा नहीं करना चाहिए" लेकिन सवाल का जवाब न दें। हालांकि मूल प्रश्न के संदर्भ में यह सही और सहायक हो सकता है, अन्य लोगों के पास एक अलग स्थिति में एक ही प्रश्न हो सकता है। "एसएसएच कुंजियों को किसी अन्य उपयोगकर्ता के लिए कभी नहीं बनाया जाना चाहिए": यह साधारण मामले में सच है। लेकिन उदाहरण के लिए, एक ही भौतिक व्यक्ति की कई पहचानों पर विचार करें। कई प्रणालियों पर कई खाते हो सकते हैं, न कि वे सभी आपको चाबियाँ उत्पन्न करने या निजी कुंजी की रक्षा करने की इजाजत दे सकते हैं। - Gustave
usersया user's - User


वहाँ है एसएसएच कुंजी में कोई उपयोगकर्ता जानकारी नहीं

सार्वजनिक कुंजी में अंतिम क्षेत्र एक है टिप्पणी (और निम्न आदेश चलाकर बदला जा सकता है ssh-keygen -C newcomment)।

किसी अन्य उपयोगकर्ता के लिए कुंजी बनाने के लिए कुछ भी विशेष करने की आवश्यकता नहीं है, बस इसे सही स्थान पर रखें और अनुमतियां सेट करें।


108
2017-10-22 19:55



यह सही जवाब है। - sebnukem
मैं बस परीक्षण और पुष्टि करता हूं, न केवल यह सिर्फ एक टिप्पणी है, लेकिन इसे हटाया जा सकता है और चाबियाँ अभी भी कार्य करती हैं। मैंने हमेशा सोचा कि यह mattered! सही उत्तर देने के लिए धन्यवाद। उपरोक्त टिप्पणियों की तरह, मेरे पास अन्य उपयोगकर्ताओं के लिए कुंजी बनाने का एक कारण है, लेकिन मैं नहीं कहूंगा कि क्यों, कोई तर्क नहीं है। - FreeSoftwareServers


उपयोग करके उपयोगकर्ता बनें सु और उस उपयोगकर्ता के रूप में कुंजी चलाएं:

[root@kvm0001 ~]# su - joeuser
[joeuser@kvm0001 ~]$ ssh-keygen -t dsa (or rsa1 or rsa, depending on your security requirements)
Generating public/private dsa key pair.
Enter file in which to save the key (/home/joeuser/.ssh/id_dsa):

16
2017-10-22 19:35



डीएसए निर्दिष्ट क्यों करें? - Ram
ओह, आदत का बल। मुझे अपडेट करने दो। - Rilindo
आपको आरएसए (या possiblly eliptic वक्र रूपों में से एक) का उपयोग करना चाहिए। डीएसए असुरक्षित keyizes तक सीमित है। आरएसए 1 एसएस 1 के लिए एक विरासत प्रारूप है जिसे अब किसी और का उपयोग नहीं करना चाहिए। - Peter Green
मेरे joeuser एक सेवा उपयोगकर्ता है, इसलिए मैं उनके रूप में लॉगिन नहीं कर सकता। एसएसएच कुंजी रखने के लिए मैं एक सेवा उपयोगकर्ता (जो केवल प्रक्रियाओं को चलाता है) की अनुमति कैसे दूं? - Jonathan
@ जोनाथन लेडर आप उस उपयोगकर्ता बनने के दौरान उपयोगकर्ता के लिए खोल निर्दिष्ट करेंगे। कुछ ऐसा: `` `[रूट @ आईपी -10-254-41-211 ~] # grep ftp / etc / passwd ftp: x: 14: 50: FTP उपयोगकर्ता: / var / ftp: / sbin / nologin [root @ आईपी -10-254-41-211 ~] # su - ftp su: चेतावनी: / var / ftp में निर्देशिका नहीं बदल सकता: ऐसी कोई फ़ाइल या निर्देशिका नहीं है यह खाता वर्तमान में उपलब्ध नहीं है। [रूट @ आईपी -10-254-41-211 ~] # su -s / bin / bash ftp bash-4.2 $ whoami ftp bash-4.2 $ `` ` - Rilindo


जैसा देख गया यहाँ, आप उस उपयोगकर्ता के फ़ोल्डर की पढ़ने की अनुमतियों को बदलने के लिए chmod का उपयोग कर सकते हैं, जिसे आप एसएसएच कुंजी जोड़ना चाहते हैं।

vim /home/username/.ssh/authorized_keys

फिर, उस फ़ाइल के नीचे कुंजी को एक नई पंक्ति में पेस्ट करें


5
2018-01-09 23:42



लिंक मर चुका है ... - Nyxynyx