2013-02-23 86 views
20

क्या कमांड लाइन के माध्यम से गिटहब एपीआई तक पहुंचने पर एसएसएच-आधारित प्रमाणीकरण का उपयोग करने का कोई तरीका है (उदाहरण के लिए, कर्ल इत्यादि?)।github API के साथ ssh प्रमाणीकरण का उपयोग कैसे करें?

Fwiw, मैं (वैसे मैं अपने सार्वजनिक SSH कुंजी फ़ाइल निर्दिष्ट बदलती) निम्नलिखित के कई रूपों की कोशिश की लेकिन मैं अभी भी अपने पासवर्ड के लिए संकेत किया गया था हर मामले में:

% curl --pubkey ~/.ssh/id_rsa.pub --user yrstruly https://api.github.com/user/repos 

उत्तर

7

यदि आप एसएसएच का उपयोग कर रहे हैं, तो आप कभी भी 'yrstruly' के रूप में लॉगऑन नहीं करेंगे। आप हमेशा 'गिट' के रूप में जुड़ेंगे।
आपकी सार्वजनिक कुंजी गिटहब के लिए आपको 'yrstruly' के रूप में पहचानने के लिए पर्याप्त होगी।
और चूंकि आप एक https पता का उपयोग कर रहे हैं, और एक एसएसएच नहीं, तो --pubkey विकल्प को अनदेखा होने की संभावना है।

एक वैध एसएसएच पता होगा: ssh://[email protected], और मुझे नहीं लगता कि गिथब अपने एपीआई के लिए उस तरह की पहुंच का प्रस्ताव करता है।

curl --user option https के लिए आवश्यक हो जाएगा में "Having trouble downloading Git archive tarballs from Private Repo" के रूप में, केवल पता:

curl -sL --user "${username}:${password}" https://github.com... 
+0

अपने अंतिम बिंदु के बारे में, वहाँ GitHub एपीआई एक रेपो संशोधित कि में आदेशों की एक टन है, और जो प्रमाणीकरण होगा के लिए जाहिर है जरूरी है। इसके अलावा, प्रमाणीकरण अलग-अलग, कम से कम इनमें से कुछ आदेश * संभवतः * -u' पैरामीटर के बिना * काम नहीं कर सके क्योंकि वे संदिग्ध होंगे। जैसे 'curl -u yrstruly -d '{" name ":" newrepo "}' https: // api.github.com/user/repos 'नया रेपो" newrepo "बना देगा यदि' -u' पैरामीटर नहीं था निर्दिष्ट? – kjo

+0

@kjo मैं सहमत हूं, -यू आवश्यक है और मैं अपने उत्तर में उपयोग करता हूं (उपयोगकर्ता नाम और पासवर्ड के साथ)। हालांकि, मैं किसी भी पब्की का उपयोग नहीं करता, क्योंकि एसएसएच यहां शामिल नहीं है। – VonC