git push heroku मास्टर अनुमति से वंचित (publickey)। घातक: दूरस्थ अंत अप्रत्याशित रूप से लटका हुआ है


85

कृपया थोड़ी हताशा का बहाना करें, जिसे मैं जांच में रखने की कोशिश करूंगा क्योंकि हरोकू एसओ को उनके ग्राहक समर्थन के रूप में उपयोग कर रहा है (जो मुझे लगता है कि यह कम से कम कहने के लिए घटिया है)।

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

मेरा उपयोग मामला उतना मुश्किल नहीं है: मैंने अपने हरोकू ऐप के लिए एक नया कीपर बनाया है। मैंने उस कुंजी को अपनी कुंजी के रूप में सेट किया है:

  > heroku keys
  === travis@xxxx.com Keys
  ssh-rsa AAAAB3NzaC...avOqfA7ZBd travis@xxxx.com

मैं बिना किसी समस्या के एक एप्लिकेशन (बेवकूफ नाम) में लॉग इन कर सकता हूं (बेवकूफ बना सकता हूं, क्योंकि ऐसा लगता है कि यह एक जीआईटी रेपो बना रहा है, किसी भी तरह का नहीं)। लेकिन हर * * गुस्सा समय मैं अपने ऐप पुश करने के लिए प्रयास करते हैं, मैं मिलता है:

  > git push heroku master
  Permission denied (publickey).
  fatal: The remote end hung up unexpectedly

मेरे पास डब्ल्यूटीएफ में कोई अंतर्दृष्टि नहीं है, इसके साथ चल रहा है; मैं बस बिना किसी सहारे के कीबोर्ड के खिलाफ अपना सिर पीट रहा हूं, लेकिन उम्मीद है कि Google के सर्वशक्तिमान भगवान इसका जवाब दे सकते हैं। और Google इसका जवाब नहीं दे रहा है (ठीक है, मुझे वापस लेने दो, मैंने इसका जवाब देने के लगभग एक दर्जन तरीके देखें हैं)।

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


7
मुझे पता होगा कि हरोकू के लिए हम जो ग्राहक सहायता प्रदान करते हैं, वह प्रथम श्रेणी का घटिया है।
रॉबर्ट हार्वे

1
मैं कुछ भी नहीं है, लेकिन SO पर उत्तरों की गुणवत्ता से प्रभावित हूं। मुझे लगता है कि यह एक उत्पाद के लिए ग्राहक सहायता प्रदान करने के लिए एक लंगड़ा तरीका है, चाहे कितना भी तकनीकी हो। यदि मुझे व्यक्तिगत खाता विवरण प्रदान करना हो तो क्या होगा? बिल्कुल वैसा नहीं जैसा मैं दुनिया के साथ साझा करना चाहता हूं (जैसा कि मुझे एहसास हुआ कि जब मुझे मूल पोस्ट को संशोधित करने की आवश्यकता थी)।
ट्रैविस जेन्सेन

आपने यह प्रश्न देखा ? विशेष रूप से अपनी सार्वजनिक कुंजी को जीआईटी के साथ पंजीकृत करने के बारे में?
केन व्हाइट व्हाइट

7
एक ही मुद्दा, यहाँ समाधान मिल गया: http://www.whatibroke.com/?p=284

1
रेमी के जुड़े समाधान ने मेरे लिए काम किया।
डेबोरा

जवाबों:


149

वेब के चारों ओर विभिन्न प्रकार के समाधान हैं। मैं उपलब्ध विकल्पों को एक पोस्ट में संक्षेपित करने का प्रयास करूंगा। कृपया हर चरण के बाद अपना कनेक्शन पुनः आज़माएँ।

  • चरण 1: आपको हरोकू में सार्वजनिक कुंजी जोड़ने का प्रयास करें

    heroku keys:add ~/.ssh/id_rsa.pub // or just heroku keys:add and it will prompt you to pick one of your keys
    
  • चरण 2: SSH कुंजी का एक नया सेट जनरेट करें, फिर पहले चरण का प्रयास करें

    https://help.github.com/articles/generating-ssh-keys

  • चरण 3: अपनी कॉन्फ़िग फ़ाइल को सत्यापित और / या संशोधित करें

    vim ~/.ssh/config
    
    Host heroku.com
    Hostname heroku.com 
    Port 22 
    IdentitiesOnly yes 
    IdentityFile ~/.ssh/id_rsa    <--- Should be your public SSH key
    TCPKeepAlive yes 
    User jsmith@gmail.com
    
  • चरण 4: हेरोक रिमोट को गिट से निकालें, कनेक्शन को फिर से बनाएँ, रिमोट को हेरोकू बनाने के माध्यम से जोड़ना केवल नए रिपॉजिटरी के लिए एक विकल्प होगा। अपने पुराने रेपो को हटाना सुनिश्चित करें जिसे आपने मूल रूप से बनाने का प्रयास किया था

     $ git remote rm heroku
     $ heroku create
    
  • चरण 5: हेरोकू टूलकिट को पुनर्स्थापित करें


10
चरण 1 ने मेरे लिए चाल चली! (मैंने अपनी मशीन के लिए अपनी SSH कुंजी और Github को फिर से हेरोको पर धकेलने से पहले उन्हें पुनः बनाया था।) धन्यवाद!
एटीएसईएम

1
इसके लिए किसी ने भी मेरे लिए काम नहीं किया, बहुत सावधानी से इसे साफ-सुथरे इंस्टॉल और हर चीज के साथ दो बार करने के बावजूद। अंत में जिस चीज ने यह सब काम किया वह यह सुनिश्चित करने के लिए था कि मेरी गिटहब कुंजी और हरोकू कुंजी समान थीं। मुझे यह भी समझ में नहीं आया कि इससे कोई फर्क क्यों पड़ा, जब तक कि मैं किसी तरह यह नोटिस करने में नाकाम रहा कि हेरोकू गीथहब पर निर्भर है, लेकिन किसी तरह इसने समस्या को ठीक कर दिया। GitHub पर खाता सेटिंग में कुंजियाँ बदली जा सकती हैं। मुझे लगता है कि आपको अपने उत्तर में इसे जोड़ना चाहिए।
Tem_user_name

1
मेरा मानना ​​है कि IdentityFile लाइन आपकी निजी ssh कुंजी होनी चाहिए। देखें stackoverflow.com/a/8874946/2816571
पॉल

2
क्या आपका मतलब था heroku create? git heroku createकोई बात नहीं है, जहाँ तक मुझे पता है।
माइकल डोरस्ट

1
वाह। मैं इस अनुभव के बारे में कुछ भी सुखद नहीं कह सकता। मैंने कई व्यंजनों का पालन किया, जिसमें git, github को अनइंस्टॉल / अनइंस्टॉल करना और पुट्टी को msysgit से बदलना शामिल है। चरण 1-3 ने आखिरकार ऐसा किया, लेकिन परिवर्तन को github ssh_config में होना चाहिए। बिना किसी मुद्दे के कई बार मेरी गित्भ कुंजियों को छोड़ने और रीसेट करने के बाद, हरोकू प्रक्रिया वास्तव में निराशाजनक थी।
विल्क

13

आपकी हरोकू की और जीथब कीज़ सिंक में नहीं हैं।

  • निर्धारित करें कि आप किस कुंजी का उपयोग करना चाहते हैं (एक नया बनाने की अनुशंसा करें)

  • जीथुब की कुंजी जोड़ें।

  • उपयोग करने के लिए हरोकू की समान कुंजी जोड़ें :heroku keys:add


4
मैं वास्तव में, वास्तव में, काश मैं चार घंटे पहले इस जवाब को पढ़ा था। हालांकि मुझे लगा कि मैंने रास्ते में बहुत कुछ सीखा है, इसलिए सभी बुरे नहीं हैं।
Tem_user_name

मेरे पास दो अलग-अलग हरोकू खाते हैं (एक मेरे काम के ईमेल का उपयोग करता है, काम पर परियोजनाओं के लिए, दूसरा मेरे व्यक्तिगत ईमेल का उपयोग करके, फ्रीलांस प्रोजेक्ट के लिए)। हरोकू मुझे दोनों के लिए एक ही कुंजी का उपयोग नहीं करने देगा। तो मैं अपने Github कुंजी को दोनों के लिए कैसे उपयोग कर सकता हूं? (और हेरोकू को विशेष रूप से मेरे गितबब कुंजी का उपयोग करने की आवश्यकता क्यों है?
हेरोकू को गितुब के

एक जादू की तरह काम किया! धन्यवाद!
शशांक

2

मैंने एक ही मुद्दे का सामना किया है, और यह मेरा सिद्धांत है कि क्या हो रहा है:

मैंने बहुत समय पहले हरोकू के लिए साइन अप किया था, जिससे उन्हें मेरी गीथूब सार्वजनिक कुंजी मिली। सामान्य प्रयास करते समय git push heroku master, यह मेरी निजी कुंजी के लिए जाता है और ढूंढता है ~/.ssh/github_rsa। यह तब आपके द्वारा पोस्ट किए गए संदेश के साथ चुपचाप विफल रहता है।

हालाँकि, मैंने बाद sshमें -iअपनी "पहचान फ़ाइल" (अर्थात निजी कुंजी) को निर्दिष्ट करने के लिए ध्वज का उपयोग करते हुए एक अन्य सर्वर में जाने की कोशिश की , और इसने मुझे पासवर्ड को मेरी निजी कुंजी के लिए प्रेरित किया। निजी कुंजी को "अनलॉक" करने के बाद, git push heroku masterकमांड काम करता है। कुछ निष्कर्ष:

  • जबकि sshआपको पासवर्ड के लिए एक पहचान फ़ाइल के लिए संकेत देगा, gitनहीं करेगा।
  • यदि आप पहचान फ़ाइल को किसी अन्य विधि से अनलॉक करते हैं, जैसे ssh, यह आपके gitउपयोग के लिए अनलॉक रहेगी ।
  • सामान्य यूनिक्स कमांड सहित किसी पहचान फ़ाइल पर पासवर्ड सुरक्षा को स्थायी रूप से हटाने के बारे में कोई दस्तावेज़ नहीं लगता है keytool
  • एक नई सार्वजनिक / निजी कुंजी जोड़ी बनाने के उपरोक्त समाधान इस पासवर्ड समस्या के लिए एक समाधान है, बिना यह जाने कि समस्या है।


1

मेरे साथ, यह समस्या लग रही थी कि मेरे पास बैकग्राउंड में ssh-agent चल रहा है, और संबंधित निजी कुंजी को इसमें जोड़ा नहीं गया था।

ps -afe | grep ssh-agent

ssh-add ~/.ssh/id_rsa_heroku_github

मुझे सार्वजनिक कुंजी को जीथब (मैन्युअल रूप से) और हरोकू में जोड़ना था

heroku keys:add ~/.ssh/id_rsa_heroku_github.pub

0

यदि कोई अन्य समाधान आपके लिए काम नहीं करता है, तो सुनिश्चित करें कि आप अपने खाते के साथ लिनक्स शेल में लॉग इन हैं और रूट खाते के साथ नहीं

इस तरह, यदि आप उस उपयोगकर्ता के साथ चल रहे हैं जो आपकी ssh कुंजियों का स्वामी नहीं है, तो git प्रमाणित करने के लिए गलत कुंजियों की तलाश करेगा

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