सवाल विंडोज़ के लिए गिट कैसे कहूं मैं अपनी निजी आरएसए कुंजी कहां ढूंढूं?


मेरा गिट सेटअप लिनक्स पर ठीक चलता है, लेकिन जब मैं विंडोज़ के तहत चीजों को सेट करने की कोशिश करता हूं (विंडोज़ के लिए गिट का उपयोग करके और TortoiseGit), मुझे नहीं पता कि मेरी निजी एसएसएच कुंजी कहां रखना है (या, अभी भी बेहतर है, कैसे बताना है ssh जहां यह स्थित है)। मैं विंडोज के लिए गिट की स्थापना के दौरान मानक ssh.exe विकल्प का उपयोग कर रहा हूँ। अगर मैं सर्वर पर पासवर्ड प्रमाणीकरण (आरएसए के बदले) की अनुमति देता हूं तो सेटअप ठीक चलाता है।


461
2017-10-25 16:45


मूल


मुझे एक ही समस्या है, मैं "गीट बैश" प्रोग्राम का उपयोग करके "रूट" के रूप में सार्वजनिक कुंजी का उपयोग करके अपने देव बॉक्स में एसएसएच कर सकता हूं जो "विंडोज़ के लिए गिट" के साथ स्थापित है लेकिन मैं अपने साथ "गिट" के रूप में लॉग इन नहीं कर सकता कुंजी हालांकि मैंने अपनी "रूट" से मेरी "अधिकृत_की" फ़ाइल को मेरे "गिट" उपयोगकर्ता में कॉपी किया है और मालिकों और अनुमतियों को सही तरीके से सेट किया है। मैं "गिट" के रूप में क्यों लॉगिन नहीं कर सकता जब "रूट" सटीक "अधिकृत_की" फ़ाइल के साथ काम करता है। इसके बजाय "गिट" के लिए यह सभी निजी कुंजी पास करता है, जो सटीक हैं जो "रूट" के साथ काम करते हैं और पासवर्ड मांगते हैं। यह एक केंद्र 5.5 सर्वर है जिस तरह से। - Jarrod Roberson
@ फ़ज़ी लॉलीपॉप: क्या आपके पास अपने गिट उपयोगकर्ता की अधिकृत_की फाइल पर सही अनुमतियां हैं? यह chmod 600 होना चाहिए, और गिट उपयोगकर्ता के स्वामित्व में होना चाहिए। यदि यह मूल उपयोगकर्ता के स्वामित्व में है, तो यह काम नहीं करेगा - Dan McClain
हाँ सभी फाइलें और निर्देशिकाएं सही मालिक और अनुमतियां हैं - Jarrod Roberson


जवाब:


गिट बैश के लिए

यदि आप msysgit (मुझे लगता है कि आप हैं) चला रहे हैं और गिट बैश चलाने की सोच रहे हैं (मैं इसे टोर्टोइज गिट पर अनुशंसा करता हूं, लेकिन अब मैं सीआईआई को जीयूआई से अधिक दुबला करता हूं), आपको यह पता लगाने की ज़रूरत है कि आपकी होम निर्देशिका गिट के लिए क्या है इसे शुरू करके बैश टाइप करें pwd (विंडोज 7 पर, यह कुछ ऐसा होगा C:\Users\phsr मुझे लगता है)। जबकि आप गिट बैश में हैं, आपको चाहिए mkdir .ssh

आपके पास होम निर्देशिका होने के बाद, और ए .ssh उसके तहत फ़ोल्डर, आप PUTTYgen खोलना चाहते हैं और कुंजी (.ppk फ़ाइल) खोलना चाहते हैं जिसे आपने पहले बनाया था। एक बार आपकी कुंजी खुली हो जाने के बाद, आप चुनना चाहते हैं Conversions -> Export OpenSSH key और इसे बचाओ HOME\.ssh\id_rsa। आपके पास उस स्थान की कुंजी होने के बाद, गिट बैश कुंजी को पहचान लेगा और इसका इस्तेमाल करेगा।

नोट: टिप्पणियां इंगित करती हैं कि यह सभी मामलों में काम नहीं करती है। आपको OpenSSH कुंजी को कॉपी करने की आवश्यकता हो सकती है Program Files\Git\.ssh\id_rsa (या Program Files (x86)\Git\.ssh\id_rsa)।

TortoiseGit के लिए

TortoiseGit का उपयोग करते समय, आपको एसएसएच कुंजी को सेट करने की आवश्यकता है तेज गति से निर्देश। आपको उस भंडार के लिए ऐसा करने की ज़रूरत है जिसके साथ आप TortoiseGit का उपयोग कर रहे हैं।


459
2017-11-05 17:18



tortoisegit के लिए तेज़ के निर्देश तब तक काम नहीं करेंगे जब तक आपके पास रिपोजिटरी न हो (क्योंकि 'रिमोट' कॉन्फ़िगरेशन सेटिंग तब तक प्रकट नहीं होती है जब तक कि आप रेपो पर कार्य नहीं करते), और संभवतः आप पहले स्थान पर रिपोजिटरी नहीं प्राप्त कर सकते हैं यदि आप ' उत्पत्ति से क्लोन करने के लिए स्वयं को प्रमाणित न करें। मुश्किल! - Kylotan
गिटबाश के साथ मैंने पाया कि मुझे अपनी प्रतिलिपि बनाना है ~/.ssh/id_rsa फ़ाइल करने के लिए Program Files\Git\.ssh\id_rsa - जो थोड़ा उलझन में था, लेकिन अब IntelliJ और Windows cmd गिट रिपॉजिटरीज़ को दबा सकता है जो कुंजी प्रमाणीकरण का उपयोग करता है। - JP.
इसी तरह। मैंने बस गिट-फॉर-विंडोज़ स्थापित किए हैं, मैं इसे cmd.exe से चला रहा हूं। मुझे फाइलें रखने की ज़रूरत थी id_rsa तथा id_rsa.pub में c:\program files (x86)\Git\.ssh । .ssh डीआईआर पहले से मौजूद था। धन्यवाद, जेपी। - Cheeso
दूसरा अनुच्छेद सुनहरा था। :) - Bjørn
@ डेमन: यह होना चाहिए id_rsa विस्तार के बिना। वह फ़ाइल नाम है, यह निर्देशिका नहीं है - Dan McClain


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

उदाहरण के लिए, ए पर विंडोज विस्टा स्थापना, यह जारी करके किया जाएगा setx HOME c:\Users\admin\ कमांड लाइन पर।

इसने मेरा दिन बनाया और गिट के साथ इस मुद्दे को हल किया बशर्ते कि आपकी निजी कुंजी पासवर्ड सुरक्षित न हो। यदि आप एसएसएच-एजेंट का उपयोग करना चाहते हैं, तो आप शायद एसएसएच-एजेंट cmd.exe चला सकते हैं (हालांकि मैंने कभी ऐसा नहीं किया है) और सामान्य रूप से ssh-add।

ध्यान दें कि सभी गिट / एसएसएच उपकरण को cmd.exe से चलाने के लिए नहीं किया जाना चाहिए झपकी एक खिड़की।

यदि यह सही ढंग से काम नहीं करता है, तो प्लिंक का उपयोग करके संभवतः ट्वीविंग द्वारा हासिल किया जा सकता है GIT_SSH। सभी एसवीएन + एसएसएच ट्यूटोरियल का संदर्भ लें; यह मूल रूप से वही नलसाजी है जिसे आपको सेटअप करने की आवश्यकता है।


101
2017-11-05 18:24



यही वह है जिसे मैं ढूंढ रहा था क्योंकि मैं विंडोज कमांड प्रॉम्प्ट का उपयोग करने की कोशिश कर रहा हूं, गिट बैश नहीं। - John Ruiz
अच्छा, आसान फिक्स लेकिन इसके बिना पता लगाना मुश्किल होगा! - thaddeusmt
महत्वपूर्ण है कि HOME = और c: \ के बीच कोई रिक्त स्थान न हो ... अक्टूबर के समाधान ने मेरे लिए चाल बनाई। :-) - Lutz
setx HOME c:\Users\admin` command doesn't seems to be working in Git Bash. You have to use इसके बजाय cmd`। - trejder
+1 GIT_SSH=c:\pathto\plink.exe - Nick Grealy


आप निम्न तरीकों से TortoiseGit के लिए मुख्य स्थान निर्दिष्ट कर सकते हैं:

  • एक एक्सप्लोरर विंडो खोलें।
  • Contextmenu खोलें और नेविगेट करें TortoiseGit → सेटिंग्स
  • अब खुली खिड़की में, नेविगेट करें Git → रिमोट
  • संबंधित इनपुट बॉक्स में अपनी पुटी कुंजी को पथ सेट करें।

एक स्क्रीनशॉट नीचे है:

Enter image description here


48
2017-11-05 14:07



इसके अतिरिक्त यदि आपको अपनी निजी कुंजी को अन्य प्रारूप से '.ppk' प्रारूप में रूपांतरित करने की आवश्यकता है, तो आप इसका अनुसरण कर सकते हैं इस - Tariq M Nasim
यह मेरे लिए काम किया। - Maxim Eliseev
गिट> रिमोट केवल तभी दिखाई देता है जब आपने रिपोजिटरी को सफलतापूर्वक क्लोन कर लिया हो। - Steve Pitchers
गिट में उपयोग किए गए सबकुछ ठीक से काम करने के लिए एक बहुत आसान समाधान है (ओपनएसएसएच का उपयोग करके), और फिर गिट द्वारा उपयोग किए गए ssh.exe का उपयोग करने के लिए TortoiseGit को बताएं। देख stackoverflow.com/a/33328628/318317 इस तरह, आपको केवल एक बार इसे ठीक करने की आवश्यकता है। - Daniel Rose


पिछले उत्तरों में से कोई भी मेरे लिए काम नहीं किया। अंत में मेरे लिए क्या काम किया गया था। यदि आप जानते हैं कि क्या टाइप करना है तो यह वास्तव में काफी सरल है। इसे पुटी की जरूरत नहीं है।

  • एक गिट बैश प्रॉम्प्ट खोलें
  • 'Ssh-keygen' टाइप करें
    • डिफ़ॉल्ट स्थान स्वीकार करें
    • एक खाली पासफ्रेज चुनें (इसलिए सभी सवालों के लिए 'एंटर' दबाएं ')
  • अब सार्वजनिक कुंजी को अपने सर्वर पर कॉपी करें, उदाहरण के लिए: scp ~ / .ssh / id_rsa.pub someuser@someserver.com: ~

यह आपके कंप्यूटर पर थोड़ा सा है। अभी व ssh गंतव्य सर्वर में, फिर करें

mkdir -p ~/.ssh
cd ~/.ssh
cat ../id_rsa.pub >> authorized_keys
rm ../id_rsa.pub

बस! हो गया! गिट बैश से, परीक्षण करने के लिए निम्नलिखित कार्य करें:

ssh someuser@someserver.com ls

यदि यह गिट सर्वर पर आपकी होम निर्देशिका में फ़ाइलों को सूचीबद्ध करता है, और फिर आप कर चुके हैं!

गिटहब के लिए, आपके पास उनके सर्वर तक खोल पहुंच नहीं है, लेकिन आप अपनी वेबसाइट का उपयोग करके कुंजी अपलोड कर सकते हैं, इसलिए बिट 'अब अपने सर्वर पर कॉपी करें' के लिए, करें:

  • गिट बैश में, 'बिल्ली ~ / .ssh / id_rsa.pub' टाइप करें, परिणाम का चयन करें, और इसे क्लिपबोर्ड पर कॉपी करें।
  • गिटहब वेबसाइट पर, 'खाता सेटिंग्स', 'एसएसएच और जीपीजी कुंजी' पर जाएं, 'नई एसएसएच कुंजी' पर क्लिक करें, और कुंजी पेस्ट करें।

45
2018-04-25 01:32



पासफ्रेज़ के बिना कुंजी न बनाएं। यह एक टेक्स्ट फ़ाइल में अपना पासवर्ड डालने जैसा है, सिवाय इसके कि हर कोई निजी कुंजी के लिए डिफ़ॉल्ट स्थान जानता है। - GregB
आप गलत सवाल का जवाब दे रहे हैं। क्यू एक मौजूदा निजी कुंजी को इंगित करने का तरीका है। - Orangutech
@GregB, मैं इसे इस तरह देखता हूं: कोई भी सर्वर जिसके लिए मैं पासवर्ड-कम कुंजी बनाता हूं, मेरे लैपटॉप के जितना सुरक्षित है, यह मेरे लैपटॉप की सुरक्षा परिधि का विस्तार है। असल में, यहां तक ​​कि, क्योंकि मेरी होम निर्देशिका एन्क्रिप्ट की गई है ;-) तो, यह मेरे लैपटॉप पर एन्क्रिप्टेड होम विभाजन के रूप में सुरक्षित है, जो कि मेरी राय में, जिथूब तक पहुंच सुरक्षित करने के लिए 'पर्याप्त' है। (जो आपकी राय से भिन्न हो सकता है!) - Hugh Perkins
@GregB पायरानिया में मत गिरो! :] निश्चित रूप से, पासवर्ड-सुरक्षित कुंजी का उपयोग करने से पासवर्ड-सुरक्षित कुंजी का उपयोग करना अधिक सुरक्षित है, लेकिन यह दावा करना कि पासवर्ड-कम कुंजी को टेक्स्ट फ़ाइल में पासवर्ड संग्रहीत करना उतना आसान है जितना कि एक स्पष्ट फ़ाइल है। मैंने कई मार्गदर्शिकाएं देखी हैं, जो उपयोगकर्ताओं को पासवर्ड-सुरक्षित कुंजी का उपयोग करने के लिए प्रोत्साहित करती हैं, लेकिन मैंने कभी भी दावा नहीं किया है कि पासवर्ड के बिना उनका उपयोग सुरक्षित नहीं है। इसके अलावा: कुछ सिस्टम उपयोगकर्ताओं द्वारा दर्ज की गई कुंजी के पासवर्ड को याद रखने के लिए समाधान का समर्थन नहीं करते हैं, और इसके लिए पूछते हैं, प्रत्येक बार कुंजी का उपयोग किया जाता है। जो इस स्थिति में एसएसएच कुंजी को निर्बाध बनाता है। - trejder
वार्तालाप के लिए, जो मूल प्रश्न से विचलित हो गया है, एसएसएच कुंजी निश्चित रूप से पासवर्ड से अधिक क्रिप्टोग्राफ़िक रूप से सुरक्षित हैं, लेकिन आपकी सुरक्षा को एसएसएच कुंजी को एन्क्रिप्ट नहीं करके जोखिम में डाल दिया जाता है। मेरा व्यक्तिगत दृष्टिकोण एक एसएसएच एजेंट का उपयोग कर दिन की शुरुआत में मेरी चाबियाँ अनलॉक करना है, जो तब डिक्रिप्ट की गई कुंजी को स्मृति में रखता है ताकि मुझे पूरे दिन पासवर्ड फिर से दर्ज करने की आवश्यकता न हो। जैसा कि @ ह्यूग पर्किन्स ने टिप्पणी की है, और मैं समझा रहा हूं, आप सभी अपनी सुरक्षा आवश्यकताओं को मैं / हम करते से बेहतर जानते हैं :)। - GregB


यदि आप ओपनएसएसएच उपकरण के साथ msysgit का उपयोग कर रहे हैं, तो आपको या तो बनाना होगा ~/.ssh/id_rsa, या एक गिट विन्यास बनाएँ ~/.ssh/config जो आपकी कुंजी को इंगित करता है।

यहां बिटबकेट के लिए गिट कॉन्फ़िगरेशन का एक उदाहरण दिया गया है जो सही उपयोगकर्ता नाम और डिफ़ॉल्ट कुंजी के अलावा एक कुंजी का उपयोग करेगा (यदि आप एसएसएच कनेक्शन के लिए एक कुंजी बनाए रखते हैं, और दूसरा गिट खातों के लिए)।

~ / .Ssh / config:

Host bitbucket.org
    Hostname bitbucket.org
    User git
    IdentityFile /C/keys/yourkey.key

एक बार गिट बैश में, आप कुंजी के पासवर्ड को बार-बार टाइप करने से बचने के लिए अपने वर्तमान सत्र के एसएसएच-एजेंट में अपनी कुंजी जोड़ने के लिए दो आदेश चला सकते हैं।

eval `ssh-agent`
ssh-add /C/keys/yourkey.key

34
2018-04-11 06:34



मैंने यह किया लेकिन github.com के लिए: होस्ट github.com पहचान फ़ील्ड ~ / .ssh / github_rsa - Sarah Vessels
यदि आपके पास अपने रास्ते में एक जगह है तो आपको उद्धरणों का उपयोग करना होगा: पहचान फ़ील्ड "/ सी / माई कीज़ / की" - r03
मैं इस तरह से पसंद करता हूं, क्योंकि इससे मुझे अन्य पीसी से तेजी से कनेक्ट की गई चाबियाँ मिलती हैं - Kirill Gusyatin
My .gitconfig में अनुभाग हैं। मैं इन वर्गों को किस वर्ग के तहत रखना चाहिए? - Steve Yakovenko


मैंने बस% HOME% =% HOMEPATH% सेट किया है

सिस्टम में लॉग इन किए गए सभी उपयोगकर्ताओं के लिए यह काम करने का लाभ है (वे प्रत्येक अलग। एसएसएच फ़ोल्डर्स प्राप्त करते हैं)।

Vista में:

  1. कंप्यूटर पर राइट-क्लिक करें
  2. गुण चुनें
  3. उन्नत सिस्टम सेटिंग्स पर क्लिक करें
  4. पर्यावरण चर पर क्लिक करें
  5. निचले भाग में (सिस्टम चर) नए पर क्लिक करें
  6. परिवर्तनीय नाम प्रकार के लिए: होम
  7. परिवर्तनीय पथ प्रकार के लिए:% HOMEPATH%
  8. ओके पर क्लिक करें

14
2017-10-12 01:26



मेरे मामले में मैंने HOME =% USERPROFILE% जोड़ा है - igor
ध्यान दें कि %HOMEPATH% ड्राइव अक्षर नहीं है, इसलिए यदि आपका स्रोत चालू नहीं है C: आपको प्रीपेड करना होगा C: सेवा मेरे %HOME%। - Graeme Perrow


आपकी वर्कस्टेशन पर एसएसएच एजेंट में आपकी निजी कुंजी को जोड़ा जाना चाहिए। आप इसे कैसे प्राप्त करते हैं, इस बात पर निर्भर हो सकता है कि आप किस गिट क्लाइंट का उपयोग कर रहे हैं, हालांकि पुटीटी और इसके संबंधित एजेंट (पेजेंट) आपके लिए चाल कर सकते हैं, यहां आधिकारिक बाइनरी और स्रोत का लिंक दिया गया है:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html


7
2017-10-25 17:38



मैंने उपर्युक्त कहा है कि मैं विंडोज के लिए गिट का उपयोग कर रहा हूं और पुटी के बदले ssh.exe (packaged w / git) का उपयोग कर रहा हूं। एक निजी कुंजी जोड़ने के लिए कुछ मानक अभ्यास होना चाहिए, मुझे यह पता लगाना प्रतीत नहीं होता है कि कैसे। सॉफ़्टवेयर स्विच करते समय वास्तव में मुझे लॉग इन करने की अनुमति मिल सकती है, मानक गिट सेटअप के साथ ऐसा करने का कोई तरीका होना चाहिए, नहीं? - binaryorganic
क्षमा करें मैं विंडोज़ पर काम नहीं करता, केवल लिनक्स। लेकिन कुंजी को आपके एसएसएच एजेंट में होना चाहिए। क्या वहाँ एक एजेंट.एक्सई या उन पंक्तियों के साथ कुछ है? - Declan Shanaghy
हाँ, लिनक्स पक्ष पर सेटअप केक था। लेकिन मुझे दुर्भाग्य से विंडोज़ पर काम करना होगा। विंडोज बॉक्स (एसएसएच, एसएसएच-एड, एसएसएच-एजेंट, एसएसएच-कीजेन और एसएसएच-कीस्कैन) पर गिट / बिन फ़ोल्डर में कई एसएसएच-संबंधित निष्पादन योग्य फाइलें हैं, लेकिन मुझे नहीं पता कि उनमें से कोई भी कैसे बनाना है कुछ भी करो। वे सिर्फ एक cmd खिड़की को खुलते हैं और तुरंत बंद करते हैं। मैं उलझन में हूं। - binaryorganic
पेजेंट वास्तव में मेरे लिए समस्या का समाधान करता है - मेरे स्टार्ट मेनू के स्टार्टअप फ़ोल्डर में मेरा शॉर्टकट है (C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup) संकेत करना "C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk", ताकि स्टार्टअप पर यह मेरी एसएसएच कुंजी लोड करे और इससे जीआईटी "बस काम करे": ओ) - Owen Blacker
@ ओवेनब्लैकर ओएमएफजी! आप निश्चित रूप से चाहिए इस टिप्पणी को पूर्ण आकार के रूप में लिखें उत्तर! ये है यहां एकमात्र समाधान, जिसने वास्तव में मेरी मदद की और मेरी समस्या हल की! दयालुता, कि मैं आपको केवल +1 दे सकता हूं! :] - trejder


ठीक है, मैंने सुझाव देखा .

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

इसलिए यदि आप अपनी एसएसएच कुंजी को सही ढंग से सुरक्षित करना चाहते हैं तो आपको अपनी कुंजी को निम्न निर्देशिका में रखना होगा:

विंडोज 7, 8, और 8.1 32-बिट के लिए:

सी: \ उपयोगकर्ता \\ AppData \ स्थानीय \ वर्चुअलस्टोर \ प्रोग्राम फ़ाइलें \ गिट \

विंडोज 7, 8, और 8.1 64-बिट के लिए:

सी: \ उपयोगकर्ता \\ AppData \ स्थानीय \ वर्चुअलस्टोर \ प्रोग्राम फ़ाइलें (x86) \ Git \


4
2017-09-08 10:04



हाय बस मुझे लगता है कि आपको अपना प्रश्न हटा देना चाहिए और पूछना चाहिए या देना चाहिए सुपर उपयोगकर्ता क्योंकि इस प्रकार के प्रश्न / उत्तर के लिए यह गलत साइट है :-) - Ian Macintosh
यह सिर्फ मुझे झुकाव की quistion नहीं है - Bas van den Dikkenberg
यह मेरी विन 7 मशीन पर सबसे आसान समाधान था। आप की तरह, मैंने खोज की known_hosts। निश्चित रूप से, यह अंदर था C:\Users\Dave\AppData\Local\VirtualStore\Program Files (x86)\Git\.ssh। उस निर्देशिका में मेरी कुंजी फ़ाइल (id_rsa) रखकर, एसएसएच शिकायत के बिना इसे खोजने में सक्षम था। मैंने थोड़ा पढ़ा - इस तरह विंडोज़ वर्जित (विरासत) सॉफ़्टवेयर को प्रतिबंधित क्षेत्रों (जैसे "सी: \ प्रोग्राम फ़ाइलें \") लिखने का प्रयास करता है, इसलिए गिट का एसएसएच पूरी तरह से अनजान है कि यह वर्चुअलस्टोर निर्देशिका, विंडोज़ को लिख रहा है पारदर्शी रूप से संभाला जा रहा है। कम से कम ये फ़ाइलें उपयोगकर्ता से संबंधित हैं! - DaveGauer