मैं एक OpenSSH निजी कुंजी के लिए एक पासवर्ड कैसे जोड़ूं जो एक पासवर्ड के बिना उत्पन्न हुई थी?


213

मैंने puttygen का उपयोग करके एक OpenSSH निजी कुंजी उत्पन्न की (और इसे OpenSSH प्रारूप में निर्यात किया गया)। मैं इस मौजूदा कुंजी पर एक पासवर्ड कैसे डाल सकता हूं (मुझे पता है कि पासवर्ड के साथ एक नई कुंजी कैसे उत्पन्न करें)?


13
यदि आप इस टिप्पणी को देखते हैं, तो कृपया स्वीकार किए गए उत्तरों में से एक को चिह्नित करें या एक टिप्पणी लिखें जो यह कहे कि वे चूक गए। धन्यवाद!
बेंजामिन एटकिन

1
जोड़ें परिवर्तन या हटाने के समान है: stackoverflow.com/questions/112396/… , परिवर्तन के लिए संभव वही: serverfault.com/questions/50775/…
Ciro Santilli 郝海东 change 病 事件 法轮功 法轮功

यदि आपको Bad passphraseएक id_ed25519कुंजी मिलती है, लेकिन पासवर्ड सही है, तो आप ssh-keygenइसे प्रबंधित करने के लिए संभवतः डाउन-लेवल का उपयोग कर रहे हैं ।
jww

जवाबों:


350

आदेश का प्रयास करें ssh-keygen -p -f keyfile

Ssh-keygen मैन पेज से

 -p      Requests changing the passphrase of a private key file instead of
         creating a new private key.  The program will prompt for the file
         containing the private key, for the old passphrase, and twice for
         the new passphrase.

 -f filename
         Specifies the filename of the key file.

उदाहरण:

ssh-keygen -p -f ~/.ssh/id_rsa

5
उन लोगों के लिए जो जानना चाहते हैं कि -f क्या है: यह इनपुट फ़ाइल को निर्दिष्ट करता है।
नीकोस

4
//, @sigjuice, आप कृपया एक उदाहरण पोस्ट करेंगे, जैसे $ ssh-keygen -p -f /Users/sigjuice/.ssh/id_rsa? यह उन लोगों की मदद कर सकता है जो यह नहीं जानते कि सार्वजनिक और निजी कुंजी के बीच अंतर कैसे बताया जाए, और अपने पैरों को तेजी से गीला करने में मदद करें।
नाथन बसानी

किसी कारण से, MacOS 10.14 पर, यह Proc-Type: 4,ENCRYPTEDहेडर के साथ फ़ाइल को प्रारूपित नहीं करता है , जो पासफ़्रेज़ के लिए कुछ अनुप्रयोगों की जाँच के साथ असंगत है। इसे काम करने के लिए कई तरीकों की कोशिश करने के बाद, इसे हल करने का सबसे आसान तरीका उबंटू चलाने वाले डॉकटर कंटेनर के अंदर बस यही काम करना था और फिर कुंजी को मेरे मैक पर कॉपी करना।
रैनब्रेनार्ड

38

Ssh-keygen के लिए -p विकल्प का उपयोग करें। यह आपको एक नई कुंजी उत्पन्न करने के बजाय पासवर्ड बदलने की अनुमति देता है।

पासवर्ड को सिगाजिस शो के रूप में बदलें:

ssh-keygen -p -f ~/.ssh/id_rsa

आवश्यक पासवर्ड नया पासवर्ड होगा। (यह माना जाता है कि आपने ~/.ssh/id_rsa.pubअपनी अधिकृत_की फ़ाइलों में सार्वजनिक कुंजी जोड़ दी है।) ssh के साथ टेस्ट करें:

ssh -i ~/.ssh/id_rsa localhost

आपके पास विभिन्न उपयोगों के लिए अलग-अलग नामों के साथ कई कुंजियाँ हो सकती हैं।


//, क्या आप कृपया एक उदाहरण दिखाएंगे, और यह कैसे जांचेंगे कि विकल्प ने काम किया है, @BillThor?
नाथन बसानीस

मुझे समझ नहीं आता। पासफ़्रेज़ सेट किया गया है, मैं देखता हूं जब मैं इसे फिर से बदलने की कोशिश करता हूं। लेकिन जब मैं दूरस्थ सर्वर में प्रवेश करने की कोशिश करता हूं तो यह इस पासवर्ड के लिए नहीं पूछता है, क्यों?
लुका

1
यह ठीक है। यह प्रति सत्र एक बार पूछता है :) कि पता नहीं था।
लुका

क्या इसका मतलब है कि आपको फिर से लॉग आउट करना होगा? टर्मिनल विंडो को बंद करना और इसे फिर से खोलना मेरे लिए काम नहीं करता है।
साइमन एच

आप ssh-add -Dअपनी कैश्ड पहचान को हटाने के लिए टाइप कर सकते हैं । फिर, फिर से कनेक्ट करने का प्रयास करें और यह आपसे आपका पासवर्ड मांगेगा। ssh-add -lअपनी कैश्ड पहचान की सूची देखने के लिए उपयोग करें ।
स्कॉट नेडरमैन

3

आप यह भी उपयोग कर सकते हैं openssl:

openssl rsa -aes256 -in ~/.ssh/your_key -out ~/.ssh/your_key.enc
mv ~/.ssh/your_key.enc ~/.ssh/your_key
chmod 600 ~/.ssh/your_key

देखें: https://security.stackexchange.com/a/59164/194668


मुझे लगता है कि मैं ssh-keygen रास्ता ले लूंगा ;)
माइकल पी। बाजोस

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