Git का उपयोग करते समय अनुमति अस्वीकृत (publickey) त्रुटि कैसे हल करें?


631

मैं मैक स्नो लेपर्ड पर हूं और मैंने अभी स्थापित किया है git

मैंने बस कोशिश की

git clone git@thechaw.com:cakebook.git

लेकिन जो मुझे यह त्रुटि देता है:

Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

मैं क्या खो रहा हूँ?
मैंने भी ssh-keygenबिना किसी पास-अप के, लेकिन फिर भी उसी त्रुटि के साथ करने की कोशिश की है ।


8
क्या आपने ssh-keygen के माध्यम से उत्पन्न सार्वजनिक कुंजी को अपलोड करने की कोशिश की है?
पैट्रिक कॉर्नेलिसन

मेरी समस्या यह थी कि मैंने क्लोन करने की कोशिश की sudo- यह एक अन्य उपयोगकर्ता है जिसके पास सार्वजनिक कुंजी है।
विटाली ज़डनेविच

वही त्रुटि। मैंने पहले जीथब के माध्यम से एक सार्वजनिक कुंजी बनाई, फिर ssh-keygenउपयोगिता के साथ एक और कुंजी-जोड़ी बनाई । जीथब पर व्यक्तिगत सेटिंग्स में पुरानी सार्वजनिक कुंजी को हटाना और एसएसएच और जीपीजी कुंजी के लिए मेरे ssh उत्पन्न id_rsa.pub कुंजी को जोड़ना क्लोनिंग अनुमति मुद्दों को निर्धारित करता है।
टैनर डॉल्बी

जवाबों:


774

यदि उपयोगकर्ता ने पहले सार्वजनिक / निजी कुंजी जोड़ी सेट नहीं की है

यह जानकारी theChaw पर काम कर रही है, लेकिन अन्य सभी git रिपॉजिटरी पर लागू की जा सकती है, जो SSH पबकी ऑथेंटिकेशन को सपोर्ट करती है। ( उदाहरण के लिए गिटोलिट , गिटलैब या जीथब देखें ।)

सबसे पहले अपनी खुद की सार्वजनिक / निजी कुंजी जोड़ी सेट करके शुरू करें। यह या तो डीएसए या आरएसए का उपयोग कर सकता है, इसलिए मूल रूप से आपके द्वारा सेट की गई कोई भी कुंजी काम करेगी। अधिकांश प्रणालियों पर आप ssh-keygen का उपयोग कर सकते हैं।

  • सबसे पहले आप अपने .ssh निर्देशिका में cd करना चाहते हैं। टर्मिनल खोलें और चलाएं:

    cd ~/.ssh && ssh-keygen

  • आगे आपको इसे अपने क्लिपबोर्ड पर कॉपी करना होगा।
    • OS X चलाने पर: cat id_rsa.pub | pbcopy
    • लिनक्स रन पर: cat id_rsa.pub | xclip
    • Windows पर (Cygwin / Git Bash के माध्यम से) चलाएं: cat id_rsa.pub | clip
  • वेबसाइट के माध्यम से अपने खाते में अपनी कुंजी जोड़ें।
  • अंत में अपना .gitconfig सेटअप करें।
    • git config --global user.name "bob"
    • git config --global user.email bob@... (यह सुनिश्चित करने के लिए अपनी कमांड लाइन को पुनः आरंभ करने के लिए मत भूलें कि कॉन्फ़िगरेशन फिर से लोड किया गया है)

यह आप क्लोन और चेकआउट करने के लिए अच्छा होना चाहिए।

अधिक जानकारी https://help.github.com/articles/generating-ssh-keys पर देखी जा सकती है (@Lee Whitney के लिए धन्यवाद) पर मिल सकती है -

यदि उपयोगकर्ता ने पहले एक ssh सार्वजनिक / निजी कुंजी युग्म सेट किया है

  • जाँच करें कि कौन सी कुंजी को आपके गिटब या गिटलैब खाता सेटिंग्स पर अधिकृत किया गया है
  • निर्धारित करें कि कौन सी निजी कुंजी आपके स्थानीय कंप्यूटर से संबद्ध होनी चाहिए

eval $(ssh-agent -s)

  • परिभाषित करें कि चाबियाँ कहाँ स्थित हैं

ssh-add ~/.ssh/id_rsa


6
ठीक है। यह वास्तव में एक git नहीं बल्कि ssh सिंक्रोनाइज़ेशन समस्या है। मुझे असेंबला के साथ ऐसा ही मिला और आपने लिंक से मुझे इसे सुलझाने में मदद की। धन्यवाद !
एलेक्जेंडर बॉलीयर

यह उत्तर मददगार है लेकिन यह अधिक पूर्ण और आसान लगता है जैसे कि आप स्क्रैच से चाबियां उत्पन्न कर रहे हों: help.github.com/articles/generating-ssh-keys
whitneyland

6
मैंने कीगन के साथ एक समस्या का अनुभव किया। यह वैश्विक एनवी चर में ईमेल पते के प्रति संवेदनशील है। यदि आपको यह समस्या हो रही है, तो आप पहले चरण में अपने github खाते के लिए ईमेल पता निर्दिष्ट करना चाहेंगे: ssh-keygen -t rsa -C "your_email@youremail.com"
melchoir55

30
यदि वह अभी भी काम नहीं करता है, तो आपको इसकी आवश्यकता होगी ssh-add ~/.ssh/id_rsa
माइकल लिटविन

1
xclipलिनक्स पर प्रयोग करने की नकल केवल निम्नलिखित में से करके काम की xclip -sel clip < ~/.ssh/id_rsa.pubहै जो यहाँ सूचीबद्ध है: help.github.com/articles/generating-ssh-keys
Pat Migliaccio

217

अधिक व्यापक समस्या निवारण और यहां तक ​​कि स्वचालित फिक्सिंग के साथ किया जा सकता है:

ssh -vT git@github.com

स्रोत: https://help.github.com/articles/error-permission-denied-publickey/


1
मेरी समस्या मेरे सर्वर के लिए एक अलग कुंजी होने के साथ थी। एक बार जब मैंने इस मुद्दे को निर्धारित करने के लिए उपरोक्त कमांड का उपयोग किया, तो मैंने अपनी कॉन्फ़िगरेशन फ़ाइल में IdentifyFile को ठीक किया और यह काम किया।
जरी बोलैंडर

1
दिखाया गया है कि कौन-सा कुंजी गितुब प्रमाणित करने के लिए उपयोग करने की कोशिश कर रहा था। v मददगार
cdosborn

9
यह कुछ भी ठीक नहीं करता है। मुझे अभी भी ओपी के प्रश्न में त्रुटि मिलती है।
इगोरगानापोलस्की

5
समस्या का निवारण करने में आपकी सहायता करने के लिए कमांड है, यह एक मैजिक फिक्स नहीं है, यह मेरे लिए स्विच है।
स्टीव

2
मैं इसे कुछ भी नहीं कह सकता, लेकिन यह एक दिलचस्प कमांड का एक नरक है और साथ ही GitHub Enterprise के साथ काम करता है।
हैक-आर

164

यह त्रुटि तब हो सकती है जब आप गेट रीड-ओनली URL के बजाय SSH URL (Read / Write) का उपयोग कर रहे हैं लेकिन आपके पास उस रेपो तक कोई लिखने की पहुँच नहीं है।

कभी-कभी आप बस अपने ही रेपो का क्लोन बनाना चाहते हैं, जैसे कि सर्वर पर तैनात होना। इस मामले में आपको वास्तव में केवल READ-ONLY प्रवेश की आवश्यकता है। लेकिन उसके बाद से आपका अपना रेपो है, इसलिए GitHub आपकी प्राथमिकता के अनुसार SSH URL प्रदर्शित कर सकता है। इस स्थिति में, यदि आपके दूरस्थ होस्ट की सार्वजनिक कुंजी आपके GitHub SSH कुंजी में नहीं है, तो आपकी पहुंच से इनकार कर दिया जाएगा, जो होने की उम्मीद है

एक समतुल्य मामला तब होता है जब आप किसी अन्य व्यक्ति के रेपो को क्लोन करने की कोशिश करते हैं जिसके पास आपके पास SSH URL के साथ कोई लिखने की पहुंच नहीं होती है।

एक शब्द में, यदि आपका इरादा केवल-केवल एक क्लोन क्लोन करने का है , तो HTTPS URL का उपयोग करें (https://github.com/{user_name}/{project_name}.git SSH URL ( git@github.com:{user_name}/{project_name}.git) के बजाय ) का , जो कि (अनावश्यक) सार्वजनिक कुंजी सत्यापन से बचा जाता है।


अपडेट: GitHub HTTPS को अब डिफ़ॉल्ट प्रोटोकॉल के रूप में प्रदर्शित कर रहा है और यह कदम संभवतः SSH URL के संभावित दुरुपयोग को कम कर सकता है।


साथ https://github.comGit यूआरएल, यह अभी भी कहते हैं SSL certificate problem: self signed certificate in certificate chaingit -c http.sslVerify=false clone ...एक खतरनाक चाल की तरह लगता है। क्रोम हालांकि कोई भी एसएलएल चेतावनी नहीं देता है। विचार?
जेसन क्लेबन

1
@ uos but क्षमा करें, लेकिन मैंने कभी इस समस्या का सामना नहीं किया। हो सकता है कि पहली बात यह है कि एक अलग मशीन से एक ही कमांड का प्रयास करें और देखें कि क्या समस्या बनी रहती है।
कविनो

1
यह मेरे लिए भी किया था। धन्यवाद। अपने साझा होस्टिंग खाते (1and1) पर अपने git रेपो को क्लोन करने के लिए, मुझे git clone https://github.com/MyUserName/MyRepo.git Github पेज के दाईं ओर रेपो URL के नीचे दिए गए टेक्स्ट लिंक पर क्लिक करना होगा, जहाँ वह कहता है, " आप HTTPS, SSH, या सबवर्सन से क्लोन कर सकते हैं । " ( डिफ़ॉल्ट SSH के बजाय लिंक प्राप्त करने के लिए HTTPS पर क्लिक करें ।)
ओलिवर शेफ़ेल्ड

धन्यवाद!!!!!!
शरल शेरिफ

बहुत बढ़िया जवाब। अंत में कोई समझाता है कि यह क्यों काम करता है।
Qback

104

जीथब मदद लिंक ने मुझे इस समस्या को हल करने में मदद की। ऐसा लगता है कि ssh कुंजी को ssh-agent में नहीं जोड़ा गया था। यह वही है जो मैंने किया।

कमांड 1:

सुनिश्चित करें कि ssh- एजेंट सक्षम है। आदेश पृष्ठभूमि में ssh- एजेंट शुरू करता है:

eval "$(ssh-agent -s)"

कमांड 2:

Ssh- एजेंट में अपनी SSH कुंजी जोड़ें:

ssh-add ~/.ssh/id_rsa

7
OSx El Capitan को सिएरा में अपग्रेड करने के बाद इसने मेरे लिए काम किया।
लौवकी

7
MacOS Sierra =) के उन्नयन के बाद मेरे लिए काम करें
Adriano Resende

इसने मेरे लिए रास्पबेरी पाई पर काम किया, जहां ssh-add में "-K" के बजाय "-k" झंडा है, जाहिरा तौर पर। लेकिन एक बार जब मैंने अपनी तैनाती की कुंजी जोड़ी, तो मैं अपने SSH लिंक का उपयोग करके अपने रेपो को सफलतापूर्वक क्लोन करने में सक्षम था।
जोश

34

वही त्रुटि रिपोर्ट मिली।

इसके बजाय HTTP का उपयोग करने के साथ फिक्स्ड। जब से मैं एक परीक्षण पीसी के लिए "SSH चाबियाँ" सेट नहीं करना चाहता।

क्लोन करने पर URL को HTTP में बदलें:

git clone https://github.com/USERNAME/REPOSITORY.git

मेरी समस्या थोड़ी अलग है : मेरे पास मौजूदा स्थानीय रेपो जोड़कर रिमोट से जोड़ने पर URL सेट है, उपयोग करके:

git remote add origin ssh://github.com/USERNAME/REPOSITORY.git

इसे ठीक करने के लिए, URL को HTTP पर रीसेट करें:

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

BTW, आप कमांड का उपयोग करके अपने URL की जाँच कर सकते हैं:

git remote -v
origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
origin  https://github.com/USERNAME/REPOSITORY.git (push)

आशा है कि यह मेरी तरह कुछ मदद करेगा। : डी



21

ध्यान दें कि (कम से कम कुछ परियोजनाओं के लिए) आपके पास ssh कुंजी के साथ एक github खाता होना चाहिए

अपने प्रमाणीकरण एजेंट ( ssh-add -l ) में सूचीबद्ध कुंजियों को
देखें (यदि आपको कोई दिखाई नहीं देता है, तो ssh-add / path / to / your / key के साथ अपनी मौजूदा कुंजी जोड़ें (जैसे: ssh-add ~ /.ssh/id_rsa ))
(यदि आपके पास कोई कुंजी नहीं है, तो पहले एक बनाएँ। देखें। http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html या सिर्फ Google ssh-keygen)

यह सत्यापित करने के लिए कि आपके पास अपने github खाते से जुड़ी एक कुंजी है :

के लिए जाओ: https://github.com/settings/ssh

जब आप ssh-addl टाइप करते हैं, तो आपको एक हैश कुंजी के साथ कम से कम एक कुंजी दिखाई देनी चाहिए। एक मिनट पहले ।

यदि आप नहीं जोड़ते हैं, तो एक जोड़ें, फिर से प्रयास करें।


इसने मेरे लिए काम किया। यह मेरे साथ हुआ क्योंकि मेरी चाबी को ऑर्ट एजेंट में नहीं जोड़ा गया था। धन्यवाद।
अनुनाद

19

मैं उसी समस्या से जूझ रहा था जो मैंने किया था और मैं रेपो को क्लोन करने में सक्षम था। मैंने iMac के लिए इन प्रक्रिया का पालन किया ।

पहला चरण: यदि हमारे पास पहले से ही सार्वजनिक SSH कुंजी है, तो जाँच करना।

  1. टर्मिनल खोलें।
  2. ls -al ~/.sshयह देखने के लिए दर्ज करें कि क्या मौजूदा SSH कुंजियाँ मौजूद हैं:

यह देखने के लिए कि क्या आपके पास पहले से ही एक सार्वजनिक SSH कुंजी है, निर्देशिका सूची की जाँच करें। सार्वजनिक सार्वजनिक निम्न में से एक है d_dsa.pub, id_ecdsa.pub, id_ed25519.pub, id_rsa.pub

यदि आप नहीं पाते हैं तो चरण 2 पर जाएं अन्यथा चरण 3 का पालन करें

चरण 2: सार्वजनिक SSH कुंजी बनाना

  1. टर्मिनल खोलें।
  2. आपके साथ मान्य ईमेल पता, जिसे आप गितूब के लिए उपयोग करते हैं, का अनुसरण करें ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  3. आप टर्मिनल में निम्नलिखित देखेंगे Generating public/private rsa key pair। जब यह "Enter a file in which to save the key,"Enter दबाने का संकेत देता है । यह डिफ़ॉल्ट फ़ाइल स्थान को स्वीकार करता है। जब यह Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]प्रेस को फिर से दर्ज करने का संकेत देता है । प्रॉम्प्ट पर, एक सुरक्षित पासफ़्रेज़ टाइप करें।
  4. Enter passphrase (empty for no passphrase): [Type a passphrase]यदि आप Enter same passphrase again: [Type passphrase again]फिर से एंटर प्रेस नहीं करना चाहते हैं तो एंटर दबाएं

यह उत्पन्न करेगा id_rsa.pub

चरण 3: ssh- एजेंट के लिए अपनी SSH कुंजी जोड़ना

  1. आंतरायिक प्रकार eval "$(ssh-agent -s)"
  2. Ssh- एजेंट के लिए अपनी SSH कुंजी जोड़ें। यदि आप एक नई SSH कुंजी बनाने के बजाय एक मौजूदा SSH कुंजी का उपयोग कर रहे हैं, तो आपको अपने मौजूदा निजी कुंजी फ़ाइल के नाम से id_rsa को कमांड में बदलना होगा। इस कमांड को दर्ज करें$ ssh-add -K ~/.ssh/id_rsa

अब SSH कुंजी को कॉपी करें और इसे आप github खाते में भी जोड़ें

  1. टर्मिनल में अपने ssh फ़ाइल नाम के साथ इस कमांड को दर्ज करें। pbcopy < ~/.ssh/id_rsa.pubयह फ़ाइल को आपके क्लिपबोर्ड पर कॉपी कर देगा। अब आप github खाता खोलें। सेटिंग्स> SSH और GPG कुंजियों पर जाएं> नया SSH कुंजी शीर्षक दर्ज करें और क्लिपबोर्ड से कुंजी पेस्ट करें और इसे सहेजें। वोइला तुम हो गया।

2
विंडोज यूजर कॉपी के माध्यम से: cat ~ / .ssh / id_rsa.pub | क्लिप
Fabii

1
अंत में यहाँ और वहाँ एक घंटे के लिए पढ़ने के बाद, कदम से कदम समाधान .... महान काम करता है। याद रखें कि चरणों में पासफ़्रेज़ के रूप में अपना गितुब पासवर्ड जोड़ना अन्यथा मैन्युअल रूप से जोड़ना होगा
अफशां गाजी

13

मेरे पास थोड़ी अलग स्थिति थी, मैं एक दूरस्थ सर्वर पर लॉग इन किया गया था और सर्वर पर गिट का उपयोग कर रहा था, जब मैंने कोई भी git कमांड चलाया तो मुझे वही संदेश मिला

   Permission denied (publickey).
   fatal: The remote end hung up unexpectedly

जिस तरह से मैंने तय किया वह मेरे मैक पर फ़ाइल / etc / ssh_config को बदलकर था। से

ForwardAgent no 

सेवा

ForwardAgent yes

VirtualBox VM से github के रत्नों को लाने की कोशिश करते समय त्रुटि हो रही थी। उपयोग करने के लिए मेरे Vagrantfile को अपडेट किया config.ssh.forward_agent = true, VM को पुनरारंभ किया और अब यह काम करता है।
क्रिस ब्लूम

1
इसके अनुसार सुरक्षा के मामले में सबसे अच्छा विकल्प नहीं हो सकता है: heipei.github.io/2015/02/26/…
पिता

13

मैं उसी मुद्दे से मिला क्योंकि मुझे लगा था कि SSH और HTTPS के बीच अंतर है

https://github.com/USERNAME/REPOSITORY.git

ssh://github.com/USERNAME/REPOSITORY.git

तो मैं से बदल HTTPS करने के लिए SSH बस बदलकर https://करने के लिए ssh://url के अंत पर कुछ भी नहीं बदला गया था।

लेकिन सच्चाई यह है:

https://github.com/USERNAME/REPOSITORY.git

git@github.com:USERNAME/REPOSITORY.git

इसका मतलब है कि मैंने इसे बदल दिया ssh://github.com/USERNAME/REPOSITORY.gitहै git@github.com:USERNAME/REPOSITORY.git

बेवकूफ त्रुटि लेकिन आशा है कि किसी की मदद करता है!


हाँ, मैं बदल ssh://github.com/USERNAME/REPOSITORY.gitकरने के लिए git@github.com:USERNAME/REPOSITORY.gitयह काम करता है।
विलियम हू

ज़रूर। मैं सिर्फ यह कह रहा हूं कि मुझे https का उल्लेख करने की बात दिखाई नहीं दे रही है;)
OneCricketeer

मैं देख रहा हूँ क्योंकि मैं सिर्फ का उपयोग sshकरने के बजाय httpsतो मैं अभी-अभी बदली 'https: //' को 'ssh: // `तो मैं त्रुटि मिली। इसलिए 'ssh: // git /../' को 'git @ .. / "में बदलें:) मेरे उत्तर को संपादित करें
विलियम हू

इससे मेरा काम बनता है। आपका बहुत बहुत धन्यवाद! मैंने https और उसके बाद ssh की कोशिश की, लेकिन यह तब भी मेरी पहुंच को नकारता रहता है, जब तक कि वह "git क्लोन क्लोन git@github.com: /myusername/myproject.git" के साथ अपना रास्ता न बना ले।
थाच वान

6

विंडोज पर, सुनिश्चित करें कि आपके सभी एप्लिकेशन होम पर सहमत हैं। Msys आश्चर्यजनक रूप से आपके लिए ऐसा नहीं करेगा। मुझे एक पर्यावरण चर सेट करना पड़ा क्योंकि ssh और git इस बात पर सहमत नहीं हो सकते थे कि मेरी .ssh निर्देशिका कहाँ थी।


6

क्या आप एक कॉर्पोरेट वातावरण में हैं ? क्या यह संभव है कि आपके सिस्टम चर हाल ही में बदल गए हैं? प्रति यह तो जवाब, SSH कुंजियों में रहते हैं %HOMEDRIVE%%HOMEPATH%\.ssh\id_rsa.pub। इसलिए यदि %HOMEDRIVE%हाल ही में बदला गया है, तो git को यह पता नहीं होता है कि आपकी कुंजी को कहां देखना है, और इस प्रकार सभी प्रमाणीकरण सामान।

दौड़ने की कोशिश करो ssh -vT git@github.com। ध्यान दें कि कहाँ identity fileस्थित है। मेरे लिए, जो मेरे सामान्य को नहीं\Users\MyLogin , बल्कि नेटवर्क ड्राइव को इंगित कर रहा था , क्योंकि नेटवर्क स्तर पर धकेलने वाले पर्यावरण चर में परिवर्तन के कारण।

समाधान? चूँकि मेरे नए के %HOMEDRIVE%पास मेरी स्थानीय फ़ाइलों के समान अनुमतियाँ हैं, इसलिए मैंने अपना .ssh फ़ोल्डर वहां स्थानांतरित कर दिया, और इसे एक दिन कहा।


यह काम मेरे लिए। कल मेरी ssh कुंजी काम कर रही थी लेकिन आज मेरे सिस्टम की कुछ सेटिंग बदल गई है। मैं बस फिर से शाह कुंजी जोड़ता हूं और यह अब काम कर रहा है।
हितेश अग्रवाल

6

दोस्तों यह है कि यह मेरे लिए कैसे काम किया:

  1. टर्मिनल खोलें और उपयोगकर्ता पर जाएं [संलग्न छवि देखें]
  2. .Ssh फ़ोल्डर खोलें और सुनिश्चित करें कि इसके पास कोई फ़ाइल नहीं है जैसे id_rsa या id_rsa.pub अन्यथा कभी-कभी यह ठीक से फ़ाइलों को फिर से लिखना नहीं होगा।
  3. git --version [git स्थापना और संस्करण की जाँच करें]
  4. git config --global user.email "आपकी ईमेल आईडी"
  5. git config --global user.name "आपका नाम"
  6. git config --list [सुनिश्चित करें कि आपने अपना नाम और ईमेल सेट किया है]
  7. cd ~ / .ssh
  8. ssh-keygen, यह फ़ाइल को बचाने के लिए संकेत देता है, इसे अनुमति देता है
  9. बिल्ली ~ /। ssh / id_rsa.pub [अपनी सार्वजनिक कुंजी एक्सेस करें और gerrit सेटिंग्स की कुंजी कॉपी करें]

नोट : आपको Git के साथ sudo कमांड का उपयोग नहीं करना चाहिए। यदि आपके पास एक बहुत अच्छा कारण है जो आपको sudo का उपयोग करना चाहिए, तो सुनिश्चित करें कि आप इसे हर कमांड के साथ उपयोग कर रहे हैं (यह संभवतः उस बिंदु पर रूट के रूप में शेल प्राप्त करने के लिए su का उपयोग करना बेहतर है)। यदि आप sudo के बिना SSH कुंजी उत्पन्न करते हैं और फिर sudo git पुश जैसी कमांड का उपयोग करने का प्रयास करते हैं, तो आप उसी कुंजी का उपयोग नहीं करेंगे जो उत्पन्न हुई

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें


5

मूल GIT निर्देशों ने SSH कुंजी सामग्री का संदर्भ नहीं दिया। ऊपर दिए गए कुछ लिंक के बाद, मुझे एक git सहायता पृष्ठ मिला, जो बताता है, चरण-दर-चरण, विभिन्न ऑपरेटिंग सिस्टमों के लिए यह कैसे करना है (लिंक आपके ओएस का पता लगाएगा और तदनुसार,):

http://help.github.com/set-up-git-redirect/

यह गितूब के लिए आवश्यक हर चीज के माध्यम से चलता है और "आरएसआई कुंजी बनाते समय एक पासफ़्रेज़ क्यों जोड़ता है" जैसे विस्तृत विवरण भी देता है। मुझे लगा कि मैं इसे पोस्ट करूँगा, अगर यह किसी और की मदद करे ...


5

सबसे आसान तरीका है

टर्मिनल पर जाएं-

  git push <Git Remote path> --all


3

यदि आपके पास एक से अधिक कुंजी हैं, तो आपको करने की आवश्यकता हो सकती है ssh-add private-keyfile


आपका बहुत बहुत धन्यवाद! यह वास्तव में मेरा मुद्दा था।
गोग्रीन

[root @ li566-238 hanjiyun] # ssh-add निजी-कीफ़ाइल निजी-कीफ़ाइल: ऐसी कोई फ़ाइल या निर्देशिका नहीं
JY Han

3

मुझे यह त्रुटि इसलिए लगी क्योंकि मुझे अपनी वर्तमान कार्यशील निर्देशिका अनुमति 700 देने की आवश्यकता थी:

chmod -R 700 /home/ec2-user/

3

मुझे अपने ssh कीज को रूट फोल्डर में कॉपी करना था। Google मेघ गणना इंजन Ubuntu 18.04 चला रहा है

sudo cp ~/.ssh/* /root/.ssh/

2

मैंने अपनी वर्तमान परियोजना को सेट करते समय सिर्फ इस मुद्दे का अनुभव किया है, और उपरोक्त समाधान कार्यों में से कोई भी काम नहीं करता है। इसलिए मैंने यह देखने की कोशिश की कि डिबग सूची में वास्तव में कमांड ssh -vT git@github.com का उपयोग करके क्या हो रहा है। मैंने देखा कि मेरा निजी कुंजी नाम सूची में नहीं है। इसलिए 'id_rsa' काम करने के लिए निजी कुंजी फ़ाइलनाम का नाम बदलें। आशा है कि यह मदद कर सकता है।


ऐसे मामलों में मददगार नहीं जब आप "id_rsa" कुंजी का किसी और चीज़ के लिए उपयोग कर रहे हों ....
random_user_name

2

इसके बहुत सीधे आगे। नीचे कमांड टाइप करें

ssh-keygen -t rsa -b 4096 -C "youremailid@yourdomain.com"

SSH कुंजी उत्पन्न करें। फ़ाइल खोलें और सामग्री की प्रतिलिपि बनाएँ। GitHub सेटिंग पेज पर जाएं, और SSH कुंजी पर क्लिक करें। Add new SSH कुंजी पर क्लिक करें, और यहां सामग्री पेस्ट करें। यह बात है :) आपको इस मुद्दे को फिर से नहीं देखना चाहिए।


1

मुझे एक समान अनुमति अस्वीकृत (publickey) त्रुटि मिल रही थी चलाने की कोशिश करने पर ।

ऊपर SSH चरणों के विकल्प के रूप में, आप मैक अनुप्रयोग के लिए देशी GitHub स्थापित कर सकते हैं।

मैक के लिए GitHub डाउनलोड करें पर क्लिक करें - https://help.github.com/articles/set-up-git#platform-mac

एक बार जब आप अपने git हब खाते के साथ सेटअप पूरा कर लेते हैं (मैंने git हब कमांड लाइन टूल भी स्थापित किया है लेकिन अनिश्चित है कि क्या यह कदम आवश्यक है या नहीं) तो मुझे एक ईमेल प्राप्त हुआ -

[गिटहब] आपके खाते में एक नई सार्वजनिक कुंजी जोड़ी गई

और मेरी त्रुटि ठीक हो गई।


1

मुझे वही त्रुटि मिल रही थी। मेरी समस्या सूडो में घुल-मिल रही थी।

मैं वह निर्देशिका नहीं बना सका जिसे मैं sudo के साथ git क्लोन कमांड को उपसर्ग किए बिना स्वचालित रूप से क्लोन कर रहा था। जब मैंने ऐसा किया था, हालाँकि, मेरी ssh कुंजियाँ जहाँ ठीक से संदर्भित नहीं की जा रही थीं।

इसे ठीक करने के लिए, मैंने उस मूल निर्देशिका पर चामोद के माध्यम से अनुमति दी, जिसे मैं अपने क्लोन को शामिल करना चाहता था ताकि मैं इसे लिख सकूं। फिर मैं एक सूडो उपसर्ग के बिना गिट क्लोन चला दिया। यह तो काम किया! मैंने उसके बाद अनुमति वापस बदल दी। किया हुआ।


1

मुझे यह त्रुटि मिल रही थी क्योंकि मैंने गलत ईमेल के साथ ssh कुंजियों को उत्पन्न किया था। मैं ssh का उपयोग कर कनेक्ट करने में सक्षम था, लेकिन git का उपयोग नहीं कर रहा था। समाधान मेरे जीथब खाते के मुख्य ईमेल पते का उपयोग करके कुंजियों को फिर से बनाना था।


1

इसने मेरे लिए काम किया।

आपकी सार्वजनिक कुंजी id_rsa.pub पर सहेजी जाती है; फ़ाइल और वह कुंजी है जिसे आप अपने खाते में अपलोड करते हैं। आप इसे चलाकर इस कुंजी को क्लिपबोर्ड पर सहेज सकते हैं:

pbcopy <~ / .ssh / id_rsa.pub

  • क्लिपबोर्ड पर SSH कुंजी की प्रतिलिपि बनाएँ, वेब पोर्टल पर वापस लौटें।
  • SSH कुंजी फ़ील्ड में, अपनी SSH कुंजी चिपकाएँ।
  • नाम फ़ील्ड में, कुंजी के लिए एक नाम प्रदान करें।
  • सहेजें ।

1

इसने मेरे लिए काम किया

ssh -i [your id_rsa path] -T github@github.com

आप बल्कि यह बताएंगे कि आपका उत्तर उसकी समस्या को क्यों हल करेगा, धन्यवाद।
मुहम्मद रिफैट

1

इसका सबसे आसान समाधान, जब आप एक अलग उपयोगकर्ता नाम के साथ एक रिपॉजिटरी में धकेलने की कोशिश कर रहे हैं:

 git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git

1

यह अजीब त्रुटि, मेरे मामले gnome-keyring-daemonमें कुंजी को गलत तरीके से नाम देने का एक लक्षण था जिसके लिए इसे पासवर्ड की आवश्यकता थी।

मैं यहां उल्लिखित चरणों का पालन करता हूं, और टर्मिनल के माध्यम से पासवर्ड दर्ज करता हूं। त्रुटि, उर्फ ​​उलझन में जीयूआई इंटरफ़ेस का समाधान किया गया था। देखें: /ubuntu/3045/how-to-disable-gnome-keyring


1

मेरे मामले में, मैंने ubuntu को फिर से इंस्टॉल किया है और उपयोगकर्ता का नाम पिछले से बदल दिया गया है। इस स्थिति में उत्पन्न ssh कुंजी भी पिछले एक से भिन्न होती है।

इस समस्या का हल केवल वर्तमान ssh सार्वजनिक कुंजी को रिपॉजिटरी में कॉपी करता है। कुंजी आपके उपयोगकर्ता में उपलब्ध होगी/home/.ssh/id_rsa.pub


1

मेरे मैक में मैंने इसे हल किया:

cp ~/.ssh/github_rsa ~/.ssh/id_rsa

किसी कारण से मेरी गिट में निजी कुंजी खोजने के लिए बंद कर दिया github_rsa फ़ाइल । यह एक विशिष्ट रेपो में हुआ। मेरा मतलब है कि अन्य रिपॉजिटरी में git सामान्य रूप से काम करता रहा।

मुझे लगता है कि यह एक बग है।

मैं इस व्यवहार को चला पा रहा था ssh -vT git@github.com

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