महत्वपूर्ण फिंगरप्रिंट के कारण हरोकू को धक्का नहीं दे सकता


131

मैं रेल के लिए नया हूं, और मैं हेरोकू के लिए एक बहुत ही सरल एप्लिकेशन को तैनात करने की कोशिश कर रहा था। यह दूसरा ऐप है जिसे मैंने तैनात किया है, और पहला मैं इसे ठीक करने में सक्षम था। हालाँकि मैं इस एक के साथ कुछ मुद्दे रख रहा हूँ। जब भी मैं " मास्टर धक्का दे देता हूं ", मुझे यह त्रुटि मिलती है:

! फ़िंगरप्रिंट xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx के साथ आपकी कुंजी> my_heroku_app तक पहुँचने के लिए अधिकृत नहीं है।

घातक: दूरस्थ अंत अप्रत्याशित रूप से लटका हुआ है

मैंने हरोकू में लॉग इन करने के बाद अपनी चाबियों का प्रबंधन करने की कोशिश की है। अगर मैं अपने कंसोल " हर्को कीज़ " में टाइप करता हूँ , तो मुझे मिलता है:

Myemailaddress के लिए कोई कुंजी नहीं।

हालांकि, अगर मैं कोमांड " हेरोकू कुंजी: रन" जोड़ता हूं तो मुझे मिलता है

मौजूदा सार्वजनिक कुंजी मिली: /User/michele/.ssh/id_rsa.pub ssh सार्वजनिक कुंजी अपलोड करना /User/michele/.ssh/id_rsa.pub! फिंगरप्रिंट पहले से मौजूद है। कृपया हरोकू खाते में एक ssh कुंजी का उपयोग करें

कृपया मेरी मदद करें! यह बहुत निराशा है, मुझे नहीं पता कि क्या गलत है! धन्यवाद

जवाबों:


288

मुझे एक ही समस्या थी, मैंने इस पोस्ट और अन्य लोगों को सफलता के बिना पालन किया: - (

अंत में, मुझे समाधान मिला: मुझे अपनी मशीन में अपनी नई rsa पहचान को जोड़ना था!

इसलिए, सबसे पहले मैंने एक नई rsa कुंजी बनाई:

ssh-keygen -t rsa -C "giordano.scalzo[at]gmail.com" -f  ~/.ssh/id_rsa_heroku

फिर इसे मेरी मशीन में जोड़ा

ssh-add ~/.ssh/id_rsa_heroku

और, आखिरकार, हरोकू को

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

उसके बाद,

git push heroku master

एक जादू की तरह काम किया!

उम्मीद है की यह मदद करेगा।


47
यह वास्तव में मेरे लिए करीब था। लेकिन एक बात और थी। मेरे दो हरोकू खाते थे। पहले वाले ने मेरी मशीन के लिए मेरी डिफ़ॉल्ट SSH कुंजी जोड़ी थी। कोई फर्क नहीं पड़ता कि मैंने अपने दूसरे खाते को ठीक करने की कोशिश की, यह तब तक नहीं होगा जब तक कि मैं अपनी डिफ़ॉल्ट कुंजी को पहले खाते से नहीं हटाता। SSH-AGENT डिफ़ॉल्ट रूप से पहली कुंजी भेजेगा, जिससे यह समस्या होगी। फिक्स प्रत्येक खाते के लिए हरोकू (डिफ़ॉल्ट नहीं) के लिए विशिष्ट कुंजी बनाने के लिए है
टॉम कारच्रे

13
मुझे @TomCarchrae जैसी ही समस्या थी। मैंने उस खाते से लॉग आउट किया था जो स्थायी रूप से बस्ट लग रहा था heroku logout, दूसरे खाते में लॉग इन किया और उस खाते से डिफ़ॉल्ट आरएसए कुंजी को हटा दिया। उसके बाद मैं इस नव-निर्मित कुंजी के साथ पुश करने में सक्षम था।
रॉस एलन

14
मेरे लिए व्यक्तिगत रूप से, मैंने बराबर किया, ssh-add ~/.ssh/id_rsa_herokuहालांकि मेरा था ssh-add ~/.ssh/identity.heroku.fooक्योंकि मैं भी https://github.com/ddollar/heroku-accounts (हेरोकू के लिए एक से अधिक खाता प्रबंधक) का उपयोग कर रहा हूं ।
user664833

1
एक और बात ध्यान में रखें - यदि आपके पास बहुत अधिक SSH कुंजियाँ हैं, तो यह लॉग इन नहीं कर पाएगा क्योंकि यह कुंजियों को क्रम में रखने की कोशिश करता है (और फिर आप लॉगिन से बहुत अधिक विफलताओं से बाहर निकल जाते हैं)। यह ssh- एजेंट के साथ एक दोष लगता है (उबंटू में वैसे भी, लेकिन मैं अन्य कार्यान्वयन भी मानता हूं)। इसलिए, यदि आप अपने बालों को बाहर खींच रहे हैं, तो अपनी ~ /। ssh निर्देशिका को स्थानांतरित करने और एक नया शुरू करने का प्रयास करें (आप फिर एक-एक करके कुंजियों में खींच सकते हैं)।
टॉम करचरे

7
आप अपनी कुंजी के लिए इंगित करते हुए heroku.com के लिए ~ / .ssh / config में होस्ट प्रविष्टि जोड़कर जो कुंजी भेजी जाती है, उसे प्रभावित कर सकते हैं। यह मेरे लिए एक त्वरित सुधार था क्योंकि यह मेरी डिफ़ॉल्ट कुंजी और असफलता का उपयोग करने की कोशिश करता रहा। यह संभवतः कई खातों के मामले में मदद नहीं करेगा, हालांकि।
dnewcome

61

मेरे पास, कई कुंजियाँ और कई हिरोकू खाते हैं, इसलिए मैं हर कुछ महीनों में इस समस्या को लेकर आता हूँ। जैसा कि Giordano Scalzo, Tom Carchrae और user664833 का उल्लेख है, मुख्य समस्या ssh-agent है, जिसे आप ssh-addकमांड का उपयोग करके नियंत्रित करते हैं । मैन पेज ( man ssh-add) वास्तव में बहुत स्पष्ट और संक्षिप्त है, इसलिए इसे देखें।

आप उन सभी कुंजियों को सूचीबद्ध कर सकते हैं जिनके बारे में ssh-agent को पता है:

ssh-add -l

आप उन सभी कुंजियों को हटा सकते हैं जिनके बारे में ssh-agent को पता है:

ssh-add -D

या के साथ एक विशिष्ट कुंजी को हटा दें

ssh-add -d ~/.ssh/id_rsa_example_key_file_use_your_own

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

ssh-add -D
ssh-add ~/.ssh/id_rsa_example_use_this_one_i_mean_it

1
यह मेरे लिए अच्छी तरह से काम करता है, हालाँकि मैं अपने डिफ़ॉल्ट ssh कुंजी को जोड़ने की कोशिश कर रहा हूँ जो पासफ़्रेज़ के लिए संकेत दे रहा है (माउंट लायन पर), मुझे नहीं लगता कि मेरे पास एक है? रिबूट किया गया था और मेरे डिफ़ॉल्ट
एसएच

इस एक से अधिक के लिए एक दीवार के खिलाफ मेरे सिर को कोसना, और यह अंतिम चरण की आवश्यकता थी - धन्यवाद!
ग्रिस्वाल्डबार

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

38

आपके कंप्यूटर में एक SSH कुंजी है, लेकिन यह कि SSH कुंजी किसी अन्य Heroku खाते से संबद्ध है।

यदि आपको एक ही कंप्यूटर पर विभिन्न अनुप्रयोगों के लिए दोनों खातों का उपयोग करने की आवश्यकता है, तो आपको अपनी मशीन पर एक नई SSH कुंजी बनानी चाहिए और इसे Herfu पर अपलोड करना चाहिए:

$ ssh-keygen

जब प्रॉम्प्ट आपसे पूछे तो इसे '/User/User/.ssh/new_id_rsa.pub' के रूप में सहेजना न भूलें।

$ heroku keys:add /Users/User/.ssh/new_id_rsa.pub 

फिर आपको heroku.comअपने लिए एक वैकल्पिक होस्ट जोड़ने की आवश्यकता है ~/.ssh/config:

Host heroku-alt
HostName heroku.com
IdentityFile ~/.ssh/new_id_rsa

और फिर .git/configमेजबान उपनाम का उपयोग करने के लिए अपनी परियोजना में अपडेट करें :

[remote "heroku"]
  url = git@heroku-alt:myapp.git
  fetch = +refs/heads/*:refs/remotes/heroku/*

विशिष्ट परियोजनाओं की फ़ाइलों के बीच herokuऔर heroku-altदूरस्थ में चयन करके .git/configआप यह प्रबंधित कर सकते हैं कि कौन सी परियोजनाएँ किस क्रेडेंशियल्स का उपयोग करती हैं।


1
हां, मेरे लिए भी यही समस्या थी। एक ही क्लाइंट से दो हरोकू खाते एक्सेस करना। धन्यवाद।
बर्नार्ड

मैं इस विधि को करने की कोशिश कर रहा हूं, लेकिन "होस्ट हेरोकू-एएल" मुझे त्रुटि देता है Host heroku-alt not found: 3(NXDOMAIN):। मैं इसे माउंटेन लायन पर टर्मिनल में रख रहा हूं। ~/.ssh/configया तो मौजूद नहीं है, बस .pubफाइलों का एक गुच्छा और एक कहा जाता है known_hosts। और विचार?
JVG

@ चर्चा आपको ~ / .ssh / config बनाने और उत्तर में सूचीबद्ध सामग्री में डालने की आवश्यकता होगी। आप फ़ाइल सहेजना किया जाता है और यह शामिल होंगे जब Host, HostNameऔर IdentityFileलाइनों। इसके बाद ठीक काम करना चाहिए।
डैनियल एक्स मूर

3
अति उत्कृष्ट! यह तकनीक बहुत सुंदर है!
किंफ्यो

आदमी! तुम कमाल हो। चरण-दर-चरण निष्पादित होने से अंत में मुझे राहत मिलती है। धन्यवाद !!
सॉफ्टवर

14

यहाँ एक बहुत ही स्पष्ट व्याख्या है जो कि थेरू दस्तावेज़ या प्रश्न के अन्य उत्तरों से कमी है। कम से कम सभी जानकारी किसी एक जगह दिखाई नहीं देती हैं। यह भी है कि आप समस्या को इस तरह से समझते हैं कि खाता उपकरण नहीं करता है।

हरोकू आपको 2 तरीकों से पहचानता है:

पहला है .it / config में

[heroku]
    account = acccount_name

ऐसा लगता है कि आप का उपयोग कर बुनियादी संचालन करते हैं heroku

हरोकू का दूसरा तरीका है कि आप किसी भी ऑपरेशन द्वारा ssh (git पुश) का उपयोग करें। हरोकू आपकी ssh कुंजी द्वारा आपको पहचान देगा, जैसा कि यहाँ कहा गया है: https://devcenter.heroku.com/articles/keys

यह कीपेयर मजबूत क्रिप्टोग्राफी के लिए उपयोग किया जाता है और कोड परिवर्तन को आगे बढ़ाने पर यह आपको विशिष्ट रूप से एक डेवलपर के रूप में पहचानता है।

तो आप जिस पर काम करते हैं, उसके प्रत्येक हरोकू को ssh का उपयोग करते समय हरोकू को एक अलग कुंजी भेजनी होगी। अपनी ssh कुंजियाँ बनाने के लिए किसी भी ट्यूटोरियल का पालन करें।

कुंजी को हरहोकू खाते के लिए अलग-अलग कुंजी का उपयोग करने के लिए एसएसएच मिल रहा है। आप इसे कैसे कॉन्फ़िगर करते हैं? आपको 2 काम करने होंगे:

1) आपको एक 'डमी' डोमेन बनाने की आवश्यकता होगी जिसे आपका .ssh / config इंटरसेप्ट और पुन: कॉन्फ़िगर करेगा। यह ssh को आपके द्वारा इच्छित 'वास्तविक' डोमेन बताएगा, और जो विशेष ssh कुंजी का उपयोग करेगा।

Host heroku.my_unique_key
  HostName heroku.com
  IdentityFile ~/.ssh/identity.heroku.my_unique_key
  IdentitiesOnly yes

2) git पुश का उपयोग करते समय उपयोग करने के लिए अपने .it / config को बदलें। Heroku.com के बजाय, आपके द्वारा निर्धारित डमी डोमेन का उपयोग अपने .ssh / config में करें

[remote "heroku"]
    url = git@heroku.com.git


[remote "heroku"]
    url = git@heroku.my_unique_key:myapp.git

वह यह है :) एक ही समय में थोड़ा जटिल और थोड़ा सरल। मुझे इस जानकारी की खोज करने के लिए दीवार और परीक्षण और त्रुटि के खिलाफ मेरे सिर को पीटने में 3 साल लग गए। इसे कहीं पर स्पष्ट रूप से प्रलेखित किया जाना चाहिए, लेकिन कम से कम यह एक शुरुआत है।


अद्वितीय मेजबान नाम की बात मेरा मुद्दा थी। बहुत बहुत धन्यवाद।
फ्लफीजैक


9

युवा को नई कुंजी बनाने और उन्हें जोड़ने की आवश्यकता होगी

चलाने के बाद एक नया फ़ाइल नाम निर्दिष्ट करें

ssh-keygen

तब (मेरे मामले में)

heroku keys:add /home/alex/.ssh/alex_heroku_rsa.pub

3

मेरे पास पिछले सप्ताह एक ही मुद्दा है। इस लिंक ने मेरी मदद की। मुझे आशा है कि यह आपकी थोड़ी मदद करेगा। http://devcenter.heroku.com/articles/keys


मैंने उस लिंक को देखा है, मेरी कुंजियों को फिर से हटाने और जोड़ने की कोशिश की है, हालांकि मुझे अभी भी यह काम करने के लिए नहीं मिल सकता है।
मात्र

क्या आपने इस समस्या को हल किया है?
बेंजामिन

1
क्या आप इस लिंक पर दिए गए निर्देशों को संक्षेप में बता सकते हैं? हम यहां केवल उत्तरों से लिंक से बचने की कोशिश करते हैं।
मोम ईगल

यह केवल यह बताता है कि कुंजियों को कैसे बनाया जाए, एकाधिक लोगों को कैसे प्रबंधित किया जाए।
मकारियो

3

मेरे मामले में, heroku keysपहले से ही सही कुंजी सूचीबद्ध थी। इसलिए, मुझे जो कुछ करना था, वह चला गया ssh-add /path/to/that/keyऔर फिर सब कुछ ठीक चलने लगा।


2

मेरे पास दो हेकोरू खाते भी हैं और एक कार्य के रूप में मैंने अपने मुख्य खाते को "आमंत्रित" किया (जिसकी कुंजी का उपयोग स्वचालित रूप से हेरोकू द्वारा किया जाता है) मेरी परियोजना के सहयोगी के रूप में।


1

बस विंडोज उपयोगकर्ताओं के लिए समाधान जोड़ने के लिए नहीं है।

  1. सबसे पहले "पुट्टी की जनरेटर" डाउनलोड करें

  2. इसके साथ एक कुंजी बनाएं ओबीएस आपको यादृच्छिकता उत्पन्न करने के लिए अपने माउस को खाली क्षेत्र को स्थानांतरित करने की आवश्यकता है।

  3. अपनी कुंजी को सहेजें, बस अपनी कुंजी का नाम बदलने के लिए [नाम] .pub का नाम बदलें

  4. heroku keys:addटर्मिनल में भागो !


0

मेरे मामले में समस्या ssh संस्करण था जिसका मैं उपयोग कर रहा था। मैंने अभी GIT_SSH पर्यावरण चर को दूसरे ("GIT_SSH = / usr / bin / ssh") में सेट किया है और मेरे लिए सब कुछ ठीक है।

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