Heroku 'Permission denied (publickey) fatal: не удалось прочитать из удаленного репозитория' беды



Я искал вокруг в течение многих часов подряд, глядя на решение моей, казалось бы, простой в устранении проблемы. Дело не в том, что мой поиск ничего не дал, а в том, что мой поиск дал так много разных решений-ни одно из которых не сработало.



в любом случае, я просто не могу толкать, тянуть или извлекать из моего репозитория Heroku с моего Mac. Каждая попытка дает мне (как будто это издевается надо мной) следующую ошибку:




'отказано в разрешении (publickey). фатальный: не смог чтение с пульта дистанционного управления
хранилище.-




Я пробовал (и перепробовал), чтобы исправить это по-разному. Как я уже сказал, я провел хороший кусок последних двух дней в поисках ответа. Вот некоторые из вещей, которые я пробовал:




  • heroku keys: очистить, а затем heroku keys: добавить

  • регенерация ключа ssh самостоятельно с помощью 'ssh-keygen-t rsa'

  • очистка моего .ssh каталог, а затем heroku ключи: очистить, а затем генерация ключа ssh

  • удаление моего приложения на heroku и воссоздание одного (к счастью, там было не так много)


Я могу получить из моего репозитория GitHub отлично, поэтому я знаю, что это не сетевое подключение (pinging heroku также работает).



как временное решение (которое, я надеюсь, не превратится в постоянное), я вошел в свой экземпляр Ubuntu Amazon AWS ec2. Вытягивать и толкать к и от Heroku работает отлично. По этой причине, я все еще чувствую, как будто проблема заключается в SSH-ключе на моем Mac. Как ключи появляются в разделе Мой аккаунт в Heroku. Имеет ли значение адрес электронной почты в конце ключа?



EDIT: я могу нажимать и тянуть из GitHub отлично (я не использую ssh, однако), так почему бы не Heroku?



на данный момент я готов попробовать что угодно. Спасибо!

757   14  

14 ответов:

Я знаю, что на это уже ответили. Но я хотел бы добавить мое решение, как это может быть полезно для других в будущем..

распространенная ключевая ошибка:Permission denied (publickey). Вы можете исправить это с помощью keys:add чтобы уведомить Heroku о Вашем новом ключе.

вкратце выполните следующие действия:https://devcenter.heroku.com/articles/keys

сначала вы должны создать ключ, если у вас его нет:

ssh-keygen -t rsa

во-вторых, вы должны добавьте ключ к Heroku:

heroku keys:add

Я просто подумал, что поделюсь тем, что нашел ответ на свой собственный вопрос.

написание моей проблемы сделало ее еще более ясной для меня, и я дополнительно исследовал, где, как я думал, моя проблема лежит: ключ ssh

оказывается, я был прав. Проблема заключалась не в самом ключе, а в том, что я не добавил его в список известных ssh-ключей моего локального Mac. Поэтому, хотя моя учетная запись Heroku имела правильный ключ, мой Mac не мог аутентифицироваться с ним, потому что он мог не найти этот ключ на моем компьютере. Решение проблемы?

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 для того, чтобы быть хорошей ссылкой.

у меня была точно такая же ошибка (в Windows 7) и причина была другая. Я решил это по-другому, поэтому я подумал, что добавлю причину и решение здесь для других.

хотя ошибка, казалось, указывала на heroku действительно ошибка говорила "Heroku can't get to the git repository". Я поклялся, что у меня были одни и те же ключи на всех серверах, потому что я создал его и загрузил его один за другим одновременно.

проведя почти день на этом я понял, что потому что git был только показывая мне отпечаток пальца, а не сам ключ. Я не мог проверить, что это ключ соответствует тому, что на моем HD или heroku. Я посмотрел в известном файле hosts и угадайте, что... он показывает ключи для каждого сервера, и я смог ясно увидеть, что открытые ключи git и heroku не совпадают.

1) я удалил все файлы в моей ключевой папке, ключ от github, используя их веб-сайт, и ключ от heroku, используя git bash и команду heroku keys:clear

2), а затем на GitHub по инструкции здесь чтобы создать новую пару ключей и загрузить открытый ключ в git

3) с помощью git bash-heroku keys:add чтобы загрузить тот же ключ в heroku.

теперь git push heroku master строительство.

какой кошмар, надеюсь, это кому-то помогло.

Брайан

проблема, с которой я столкнулся, заключается в том, что я использовал только https для своей учетной записи GitHub. Мне нужно было убедиться, что моя учетная запись GitHub настроена для доступа ssh и что GitHub и heroku используют одни и те же открытые ключи. Вот какие шаги я предпринял:

  1. перейдите к ~/.каталог ssh и удалите id_rsa и id_rsa.паб, если они там есть. Я начал с новых ключей, хотя это может и не понадобиться.

    $ cd ~/.ssh
    $ rm id_rsa id_rsa.pub
    
  2. следуйте инструкциям на gitHub к генерировать ssh ключи
  3. войдите в heroku, создайте новый сайт и добавьте свои открытые ключи:

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

у меня был такой же случай на linux ubuntu и просто исправил его, похоже, что ОС была перепутана между /root/.ssh / и home / user/.ssh / dir, то, что я сделал, было:

  1. удалены все ключи от root и home / user .ТСС каталог.
  2. сгенерирован новый ключ обязательно обратите внимание на путь творения (/home/you/.ssh / id_rsa) или (/root/.ssh / id_rsa)
  3. проверьте heroku keys heroku keys
  4. если ключи там понятно heroku keys:clear
  5. heroku keys:add теперь здесь, если heroku не смог найти ключ и попросил сгенерировать один правильный нет, и это означает, что у вас такая же проблема, как у меня, выполните команду add следующим образом heroku keys:add /root/.ssh/id_rsa.pub путь, который вы добавите будет тот, который вы получили в шаге 2.
  6. попробовать git push heroku master теперь

мой путь на Windows 8

  1. добавьте каталог с ssh-keygen в переменную системного пути, обычно C:\Program файлы (x86)\Git\bin

  2. открываем cmd, переходим в папку\c:\users\me

  3. создать SSH ключ ssh-keygen -t rsa

    введите файл, в котором будет сохранен ключ (//.ssh / id_rsa): .ssh / id_rsa (измените неверный путь по умолчанию .ssh / somegoodname_rsa)

  4. добавить ключ к В Herokuheroku keys:add

    выберите ключ из списка

  5. перейдите в каталог приложений, напишите красивый код

  6. Init a git repo git initgit add .git commit -m 'chore(release): v0.0.1

  7. создать приложение Herokuheroku create

  8. развернуть приложение git push heroku master

  9. Откройте приложение heroku open

была аналогичная проблема, и попробовал много вещей. В конечном счете, что сработало для меня, было установить Gnu на Windows (https://github.com/bmatzelle/gow/releases), и убедитесь, что он использовал инструмент ssh внутри этого каталога, а не тот, с Git. После установки теста с (убедитесь, что его в вашей среде путь, который он предшествует Git\bin)

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

я использовал шпатлевку и конкурс, как описано here:http://rubyonrailswin.wordpress.com/2010/03/08/getting-git-to-work-on-heroku-on-windows-using-putty-plink-pageant/

после того, как ключи были отправлены в heroku (heroku keys: add c:\Users\Person.ssh\id_rsa.паб), используйте

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>@[email protected]
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).

вам нужно создать новый ключ ssh, введя следующее - ssh-keygen-t rsa

тогда вам нужно добавить: - heroku ключи: добавить

затем, если вы наберете - heroku open

проблема решена.

Это сработало для меня в любом случае, вы могли бы попробовать...

Я получил ту же ошибку, и потому что у меня есть 4 ssh-ключа, поэтому я попытался следовать:

ssh-keygen -t rsa
heroku keys:add

затем, четыре варианта показывают:

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

Я выбираю 3), самый новый

затем я исправляю ошибку.

Я использую этот метод для решения этой проблемы Может быть, вы можете попробовать

"включить ssh-агент"

  1. скачать git

http://git-scm.com/

  1. установки

  2. включить ssh-агент

C:\Program Files\Git\cmd

start-ssh-agent

сообщение disapper после того, как я агент включен Надеюсь, это поможет вам

Я хотел бы добавить еще одно решение, так как я не вижу его здесь. Моя проблема заключалась в том, что heroku связывался с неправильным url (так как я продолжал играть с именами url). Редактирование удаленного url-адреса решило мою проблему:

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

У меня была та же проблема. И я попытался сбросить свои ключи, как все говорили, но это все еще не сработало. Потому что я переименовал приложение.

Так что я сделал, чтобы сбросить мои ключи, а также переименовать приложение из консоли. Проверить этот вопрос для получения дополнительной информации: Heroku push app проблема

Так что так простое решение, перейдите c:/Users/user_name/.ssh / и удалить все пары pub / private key, таким образом heroku будет генерировать ключи для вас.

У меня была аналогичная ошибка heroku ssh, которую я не мог решить.

в качестве обходного пути я использовал новую функцию heroku http-git (http-транспорт для удаленного "heroku" вместо ssh). Подробности здесь: https://devcenter.heroku.com/articles/http-git

(краткая версия:если у вас уже есть проект, настроенный стандартным способом, запустите heroku git: remote --http-init, чтобы изменить "heroku" remote на http.)

хорошая быстрая работа, если у вас нет времени чтобы исправить / устранить проблему ssh.

Comments

    Ничего не найдено.