हरोकू की अनुमति से इनकार (publickey) घातक: दूरस्थ रिपॉजिटरी के संकट से नहीं पढ़ सका


139

मैंने अपनी समस्या को आसानी से ठीक करने वाली समस्या के समाधान की तलाश में कई घंटों तक खोजबीन की। ऐसा नहीं है कि मेरी खोज कुछ भी नहीं हुई है, यह है कि मेरी खोज इतने सारे समाधानों में बदल गई है-जिनमें से किसी ने भी काम किया है।

वैसे भी, मैं बस अपने मैक से हरोकू रिपॉजिटरी से धक्का, खींचने या लाने में असमर्थ हूं। प्रत्येक प्रयास मुझे देता है (जैसे कि यह मेरा मजाक उड़ा रहा है) निम्न त्रुटि:

'अनुमति से इनकार (publickey)। घातक: दूरस्थ भंडार से नहीं पढ़ सकता था। '

मैंने कई अलग-अलग तरीकों से इसे ठीक करने के लिए (और पुनः प्रयास) किया है। जैसा कि मैंने कहा है, मैंने पिछले दो दिनों का एक अच्छा हिस्सा खर्च किया है जो उत्तर की तलाश कर रहा है। यहाँ कुछ चीजें मैंने कोशिश की हैं:

  • हरोकू कीज़: हरोकू कीज़ के बाद स्पष्ट: ऐड
  • 'Ssh-keygen -t rsa' के साथ अपने दम पर एक ssh कुंजी पुनर्जीवित करना
  • मेरे .ssh निर्देशिका को क्लियर करना, उसके बाद हर्को कीज़: क्लियर, उसके बाद ssh कुंजी जेनरेट करना
  • हरोकू पर मेरा ऐप डिलीट करना और एक को रीक्रिएट करना (सौभाग्य से वहां पर ज्यादा नहीं था)

मैं अपने GitHub रिपॉजिटरी फाइन से ला सकता हूं, इसलिए मुझे पता है कि यह नेटवर्क कनेक्टिविटी नहीं है (पिंगिंग हेरोकू भी काम करता है)।

एक अस्थायी समाधान के रूप में (जो मुझे आशा है कि एक स्थायी में नहीं बदल जाता है), मैंने अपने Ubuntu Amazon AWS ec2 उदाहरण में लॉग इन किया है। हेरोकू से खींचना और धक्का देना पूरी तरह से काम करता है। इस कारण से, मुझे अभी भी ऐसा लगता है जैसे समस्या मेरे मैक पर ssh कुंजी के साथ है। दोनों कुंजियाँ मेरे हरोकू खाते के नीचे दिखाई देती हैं। क्या ईमेल मुख्य मामले के अंत में पता करता है?

संपादित करें: मैं GitHub ठीक से धक्का दे सकता हूं और खींच सकता हूं (हालांकि, मैं ssh का उपयोग नहीं कर रहा हूं), इसलिए हरोकू क्यों नहीं?

इस बिंदु पर मैं कुछ भी करने की कोशिश करने को तैयार हूं। धन्यवाद!


क्या आपने अपनी हेरोकू कुंजी के लिए एक पासफ़्रेज़ निर्धारित किया है? और मुझे लगता है कि यह ( stackoverflow.com/a/16753800/6309 ) मदद नहीं करता है? या डबल-चेकिंग stackoverflow.com/a/16753800/6309
VonC

अफसोस की बात है कि यह अभी भी काम करने से इनकार करता है।
thebradbain

कभी कभी ऐसा होता है जब Heroku रखरखाव में है: status.heroku.com
Mavis

जवाबों:


284

मुझे पता है कि यह पहले ही उत्तर दिया जा चुका है। लेकिन मैं अपना समाधान जोड़ना चाहूंगा क्योंकि यह भविष्य में दूसरों के लिए मददगार हो सकता है।

एक आम कुंजी त्रुटि है: Permission denied (publickey)। आप keys:addअपनी नई कुंजी के हरोकू को सूचित करके इसका उपयोग कर सकते हैं ।

संक्षेप में इन चरणों का पालन करें: https://devcenter.heroku.com/articles/keys

यदि आपके पास एक नहीं है तो सबसे पहले आपको एक कुंजी बनानी होगी:

ssh-keygen -t rsa

दूसरा आपको हरोकू की कुंजी को जोड़ना होगा:

heroku keys:add

2
धन्यवाद kris, भविष्य से कोई एक :) यह मेरे लिए काम करता है
अहमद Ajmi

8
heroku चाबियाँ: जोड़ने के लिए मेरे ट्यूटोरियल याद किया गया था मुझे लगता है ... धन्यवाद! :)
ओले हेनरिक स्कोगस्ट्रोम

कुंजी केवल तभी उत्पन्न की जाती है यदि आपके पास एक भी अल्डर न हो, मेरे मामले में मेरे पास एलेडी की कुंजी थी और उसके लिए कुंजी को हेरोकू में जोड़ने की आवश्यकता थी
joseramonc

4
पहला अनावश्यक है। heroku keys:addयदि आपके पास चाबी नहीं है तो आपको एक बनाने में मदद मिलेगी।
Mygod

भागो ssh-keygen -t rsaअगर RSAउत्पन्न नहीं है तो अन्यथा heroku keys:addपर्याप्त होना चाहिए
Volatil3

122

मैंने सोचा था कि मैं साझा करूंगा कि मुझे अपने प्रश्न का उत्तर मिला।

मेरी समस्या को लिखने से यह मेरे लिए और भी स्पष्ट हो गया, और मैंने आगे जांच की कि मैंने अपनी समस्या कहाँ रखी है: ssh कुंजी

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

ssh-add ~/.ssh/id_rsa
#and, to confirm it's been added to the known list of keys
ssh-add -l

मैं एक अच्छा संदर्भ होने के लिए इसका श्रेय https://help.github.com/articles/error-permission-denied-publickey को देना चाहूंगा ।


5
आपकी प्रतिक्रिया के लिए धन्यवाद, मेरी प्रारंभिक टिप्पणी की तुलना में आपकी स्थिति के लिए अधिक सटीक है। +1
वॉनसी

4
विंडोज पर एक को शुरू करना होगा Git Bash(एक फ़ोल्डर पर राइट क्लिक करना होगा), और एक ssh-agentरनिंग शुरू करें `ssh-agent`(जो बैक-टिक्स को ध्यान में रखकर) संभव है और फिर ऊपर बताए अनुसार कुंजी जोड़ें। मुझे यह हर बार करना होगा जब मैं शुरू करता हूं Git Bash/ ssh-agent, यह भूल जाता है कि क्या जोड़ा गया था।
ट्वीस्ट्रीमोब

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

धन्यवाद - यह कभी नहीं लगा होगा!
मार्क हैनसेन

इसने मेरी समस्या को ठीक कर दिया, उच्च मत वाले उत्तर को नहीं, धन्यवाद :)
रयान ब्रॉडी

31

मेरे पास बिल्कुल वही त्रुटि थी (विंडोज़ 7 पर) और कारण अलग था। मैंने इसे एक अलग तरीके से हल किया, इसलिए मैंने सोचा कि मैं दूसरों के लिए यहां कारण और समाधान जोड़ूंगा।

भले ही त्रुटि heroku को इंगित करने के लिए लग रहा था वास्तव में त्रुटि कह रही थी "Heroku can't get to the git repository"। मैंने शपथ ली कि मेरे पास सभी सर्वरों पर समान कुंजी है क्योंकि मैंने इसे बनाया था और एक ही समय में एक के बाद एक इसे अपलोड किया था।

इस पर लगभग एक दिन बिताने के बाद मुझे एहसास हुआ कि क्योंकि git मुझे केवल फिंगरप्रिंट दिखा रहा था न कि वास्तविक कुंजी। मैं यह सत्यापित नहीं कर सका कि यह मेरी HD या हरोकू से मेल खाता है। मैंने ज्ञात होस्ट फ़ाइल में देखा और अनुमान लगाया कि क्या ... यह प्रत्येक सर्वर के लिए कुंजी दिखाता है और मैं स्पष्ट रूप से यह देखने में सक्षम था कि गिट और हरोकू सार्वजनिक कुंजी मेल नहीं खाते।

1) मैंने अपने कुंजी फ़ोल्डर में सभी फाइलें डिलीट कर दीं, उनकी वेबसाइट का उपयोग करने वाले जीथब से कुंजी, और गिट बश और कमांड का उपयोग करके हरोकू की कुंजी heroku keys:clear

2) एक नई कुंजी जोड़ी उत्पन्न करने और गिट की सार्वजनिक कुंजी अपलोड करने के लिए यहाँ github के निर्देशों का पालन किया

3) git bash- heroku keys:add हरको को एक ही कुंजी अपलोड करने के लिए उपयोग करना।

अब git push heroku masterकाम करता है।

क्या बुरा सपना, आशा है कि यह किसी की मदद की।

ब्रायन


1
जब तक मैंने आपका पोस्ट नहीं देखा तब तक मेरे दिमाग को इस तरह से काटे। जैसे ही मैंने गिट और हेरोकू कीज़ बनाए, वैसे ही सब ठीक था। लेकिन समझ में नहीं आता है कि उन्हें समान होने की आवश्यकता क्यों है।
किशोर मसंद

इस समस्या के साथ बिताए गए उत्तर के लिए धन्यवाद
इवान बाकर

बहुत उपयोगी गिट प्रलेखन लिंक, सभी सही काम करता है
HotJard

यह पता लगाने की कोशिश करने के कुछ दिनों के बाद मेरे लिए काम किया। मुझे आश्चर्य है कि हेरोकू व्यापार में इस समस्या से निपटने में मदद कर सकता है। ऐसा करने का एक आसान तरीका होना चाहिए।
ल्यूक एफ।

धन्यवाद। मेरे लिए काम किया; सिर्फ एक बात: जीथब लिंक में कहीं न कहीं "ssh-add" करने के लिए कहा गया है। वहाँ मेरे पास एक मुद्दा था, लेकिन मुझे यहाँ समाधान मिल गया है: stackoverflow.com/questions/17846529/…
Alin Ciocan

17

मुझे जो समस्या आ रही थी वह यह है कि मैं केवल अपने GitHub खाते के लिए https का उपयोग कर रहा था। मुझे यह सुनिश्चित करने की ज़रूरत थी कि मेरा GitHub खाता ssh एक्सेस के लिए सेटअप था और GitHub और heroku दोनों एक ही सार्वजनिक कुंजी का उपयोग कर रहे थे। ये कदम मैंने उठाए हैं:

  1. ~ / .Ssh निर्देशिका पर नेविगेट करें और अगर वे वहाँ हैं तो id_rsa और id_rsa.pub को हटा दें। मैंने नई चाबियों के साथ शुरुआत की, हालांकि यह आवश्यक नहीं हो सकता है।

    $ cd ~/.ssh
    $ rm id_rsa id_rsa.pub
    
  2. Ssh कीज़ जेनरेट करने के लिए gitHub पर दिए गए चरणों का पालन करें
  3. Heroku में लॉग इन करें, एक नई साइट बनाएं और अपनी सार्वजनिक कुंजी जोड़ें:

    $ heroku login
    ...
    $ heroku create
    $ heroku keys:add
    $ git push heroku master
    

6

मैं linux ubuntu पर एक ही मामला था और बस यह तय है, ऐसा लगता है कि ओएस /root/.ssh/ और घर / उपयोगकर्ता / .ssh / dir के बीच उलझन में था, मैंने क्या किया था।

  1. रूट और घर / उपयोगकर्ता .shh निर्देशिका से सभी कुंजी को हटा दिया गया।
  2. सृजन की राह पर ध्यान देना सुनिश्चित करें (/home/you/.ssh/id_rsa) या (/root/.ssh/id_rsa)
  3. हरकोक कीज की जाँच करें heroku keys
  4. अगर वहाँ स्पष्ट में चाबियाँ heroku keys:clear
  5. heroku keys:addअब यहाँ पर अगर heroku को कोई चाबी नहीं मिल रही है और एक सही नंबर जेनरेट करने के लिए कहा गया है, और इसका मतलब है कि आपके पास मेरा एक ही मुद्दा है, इस तरह से ऐड कमांड करें heroku keys:add /root/.ssh/id_rsa.pubकि आप जो रास्ता जोड़ेंगे वह वही होगा जो आपको मिला था चरण 2 में।
  6. git push heroku masterअब कोशिश करो

3

विंडोज 8 पर मेरा रास्ता

  1. सिस्टम पथ चर के लिए ssh-keygen के साथ एक निर्देशिका जोड़ें, आमतौर पर C: \ Program Files (x86) \ Git \ bin

  2. CMD खोलें, C: \ Users \ Me पर जाएं

  3. SSH कुंजी उत्पन्न करें ssh-keygen -t rsa

    वह फ़ाइल दर्ज करें जिसमें कुंजी (//.ssh/id_rsa) को सहेजना है: .ssh / id_rsa (डिफ़ॉल्ट गलत पथ को .ssh / somegoodname_rsa में बदलें)

  4. हरोकू की कुंजी जोड़ें heroku keys:add

    किसी सूची से बनाई गई कुंजी का चयन करें

  5. अपनी एप्लिकेशन निर्देशिका पर जाएं, कुछ सुंदर कोड लिखें

  6. एक git रेपो में प्रवेश करें git init git add . git commit -m 'chore(release): v0.0.1

  7. Heroku एप्लिकेशन बनाएं heroku create

  8. अपने ऐप को तैनात करें git push heroku master

  9. अपना ऐप खोलें heroku open


2

एक समान मुद्दा था, और बहुत सी चीजों की कोशिश की। अंततः मेरे लिए जो काम किया, वह था कि विंडोज पर Gnu स्थापित ( https://github.com/bmatzelle/gow/releases ), और यह सुनिश्चित करें कि यह उस निर्देशिका के अंदर ssh टूल का उपयोग कर रहा था, न कि Git वाले। एक बार स्थापित परीक्षण के साथ (यह सुनिश्चित करें कि यदि आपके वातावरण में यह पथ है कि यह Git \ bin से पहले है)

C:\Git\htest2>which ssh
C:\Program Files (x86)\Gow\bin\ssh.BAT

मैंने यहाँ वर्णित के रूप में पोटीन और पेजेंट का इस्तेमाल किया: http://rubyonrailswin.wordpress.com/2010/03/08/getting-git-to-work-on-heroku-on-windows-using-putty-plink-pageant/

एक बार जब कीको को हरोकू भेजा गया था (heroku keys: add c: \ Users \ Person.ssh \ id_rsa.pub), का उपयोग करें

ssh -v <username>@heroku.com 

और सुनिश्चित करें कि आपका स्टैक पुट्टी का उपयोग कर रहा है - यानी एक वर्किंग स्टैक:

Looking up host "heroku.com"
Connecting to 50.19.85.132 port 22
Server version: SSH-2.0-Twisted
Using SSH protocol version 2
**We claim version: SSH-2.0-PuTTY_Release_0.62**
Using Diffie-Hellman with standard group "group1"
Doing Diffie-Hellman key exchange with hash SHA-1
Host key fingerprint is:
ssh-rsa 2048 8b:48:5e:67:0e:c9:16:47:32:f2:87:0c:1f:c8:60:ad
Initialised AES-256 SDCTR client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 SDCTR server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Pageant is running. Requesting keys.
Pageant has 1 SSH-2 keys
Using username "*--ommitted for security--*".
**Trying Pageant key #0**
Authenticating with public key "rsa-key-20140401" from agent
Sending Pageant's response
Access granted
Opened channel for session
Server refused to allocate pty
Server refused to start a shell/command
FATAL ERROR: Server refused to start a shell/command

एक जो पहले चल रहा था और विफल हो गया:

C:\Git\htest2>ssh -v <username>@gmail.com@heroku.com
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Connecting to heroku.com [50.19.85.156] port 22.
debug1: Connection established.
debug1: identity file /c/Users/Person/.ssh/identity type -1
debug1: identity file /c/Users/Person/.ssh/id_rsa type 1
debug1: identity file /c/Users/Person/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version Twisted
debug1: no match: Twisted
debug1: Enabling compatibility mode for protocol 2.0
**debug1: Local version string SSH-2.0-OpenSSH_4.6**
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Host 'heroku.com' is known and matches the RSA host key.
debug1: Found key in /c/Users/Person/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /c/Users/Person/.ssh/identity
debug1: Offering public key: /c/Users/Person/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: Trying private key: /c/Users/Person/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).

बस यह कहने के लिए कि यह विंडोज 8 (8.1) का उपयोग कर रहा है। यह भी लगता है कि जैसे GoW ssh टूल कुंजी है, क्योंकि मैं पोटीन के टुकड़ों के बिना उपयोग करने में सक्षम था, और ssh-keygen का उपयोग करता था।
user3484361

2

आपको निम्नलिखित ssh-keygen -t rsa टाइप करके एक नई ssh कुंजी बनाने की आवश्यकता है

फिर आपको जोड़ने की आवश्यकता है: - हरोकू कीज़: जोड़ें

फिर अगर आप टाइप करते हैं - हरोकू ओपन

समस्या सुलझा ली गई है।

यह मेरे लिए वैसे भी काम करता है, आप इसे एक कोशिश दे सकते हैं ...


2

मुझे एक ही त्रुटि मिली, और क्योंकि मेरे पास 4 ssh-keys हैं, इसलिए मैंने अनुसरण करने की कोशिश की:

ssh-keygen -t rsa
heroku keys:add

फिर, चार विकल्प दिखाते हैं:

1) github_rsa.pub
2) id_boot2docker.pub
3) id_rsa.pub
4) sshkey.pub

मैं 3 चुनता हूं), सबसे नया

फिर, मैं त्रुटि को ठीक करता हूं।


1

मैं इस समस्या को हल करने के लिए इस विधि का उपयोग करता हूं

"Ssh- एजेंट सक्षम करें"

  1. Git डाउनलोड करें

http://git-scm.com/

  1. इसे स्थापित करो

  2. Ssh- एजेंट सक्षम करें

C: \ Program Files \ Git \ cmd

स्टार्ट-ssh-एजेंट

संदेश एजेंट के सक्षम होने के बाद गायब हो जाता है आशा है कि यह आपकी मदद करेगा


1

मैं एक और समाधान जोड़ना चाहूंगा क्योंकि मैंने इसे यहां नहीं देखा। मेरी समस्या यह थी कि हरोकू गलत यूआरएल से जुड़ रहा था (जब से मैं यूआरएल नामों से खेलता रहा)। दूरस्थ url के संपादन से मेरी समस्या हल हो गई:

git remote set-url heroku <heroku-url-here>

0

मेरी भी यही समस्या थी। और मैंने अपनी चाबियाँ रीसेट करने की कोशिश की जैसा कि सभी ने कहा, लेकिन यह अभी भी काम नहीं किया। क्योंकि मैंने ऐप का नाम बदल दिया था।

इसलिए मैंने जो किया वह था कि मैं अपनी कुंजियों को रीसेट करूं और कंसोल से ऐप का नाम बदलूं। अधिक जानकारी के लिए इस प्रश्न की जाँच करें: हरोकू पुश ऐप समस्या


0

अतः इतना सरल समाधान, c: /User/user_name/.ssh/ पर जाएं और सभी पब / निजी कुंजी जोड़े को हटा दें, इस तरह हरकुओ आपके लिए कुंजी उत्पन्न करेगा।


0

मेरे पास एक समान हरोकू ssh त्रुटि थी जिसे मैं हल नहीं कर सकता था।

वर्कअराउंड के रूप में, मैंने नए हरोकू http-git फीचर (http ट्रांसपोर्ट फॉर "हेरोकू" रिमोट के बजाय ssh) का उपयोग किया। यहाँ विवरण: https://devcenter.heroku.com/articles/http-git

(लघु संस्करण: यदि आपके पास कोई परियोजना पहले से ही मानक तरीके से सेट है, तो हरोकू git चलाएं: दूरस्थ --http-init को "heroku" दूरस्थ से http में बदलने के लिए।)

यदि आपके पास ssh समस्या को ठीक करने / उसका निवारण करने का समय नहीं है, तो एक अच्छा त्वरित कार्य।


मेरे मामले में, यह मुद्दा ssh के दूरस्थ रास्तों में ":" से संबंधित है। (विंडोज़ के लिए 1.9.4 जीतें।) किसी कारण के लिए ssh: // git @ host: रेपो "घातक के साथ विफल रहता है: दूरस्थ रिपॉजिटरी से नहीं पढ़ सकता", जबकि ssh: // git @ host / repo "सफल होता है।
FullPoderCartPartTimeSysAdmin
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.