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?
на данный момент я готов попробовать что угодно. Спасибо!
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:clear2), а затем на GitHub по инструкции здесь чтобы создать новую пару ключей и загрузить открытый ключ в git
3) с помощью
git bash-heroku keys:addчтобы загрузить тот же ключ в heroku.теперь
git push heroku masterстроительство.какой кошмар, надеюсь, это кому-то помогло.
Брайан
проблема, с которой я столкнулся, заключается в том, что я использовал только https для своей учетной записи GitHub. Мне нужно было убедиться, что моя учетная запись GitHub настроена для доступа ssh и что GitHub и heroku используют одни и те же открытые ключи. Вот какие шаги я предпринял:
перейдите к ~/.каталог ssh и удалите id_rsa и id_rsa.паб, если они там есть. Я начал с новых ключей, хотя это может и не понадобиться.
$ cd ~/.ssh $ rm id_rsa id_rsa.pub- следуйте инструкциям на gitHub к генерировать ssh ключи
войдите в heroku, создайте новый сайт и добавьте свои открытые ключи:
$ heroku login ... $ heroku create $ heroku keys:add $ git push heroku master
у меня был такой же случай на linux ubuntu и просто исправил его, похоже, что ОС была перепутана между /root/.ssh / и home / user/.ssh / dir, то, что я сделал, было:
- удалены все ключи от root и home / user .ТСС каталог.
- сгенерирован новый ключ обязательно обратите внимание на путь творения (/home/you/.ssh / id_rsa) или (/root/.ssh / id_rsa)
- проверьте heroku keys
heroku keys- если ключи там понятно
heroku keys:clearheroku keys:addтеперь здесь, если heroku не смог найти ключ и попросил сгенерировать один правильный нет, и это означает, что у вас такая же проблема, как у меня, выполните команду add следующим образомheroku keys:add /root/.ssh/id_rsa.pubпуть, который вы добавите будет тот, который вы получили в шаге 2.- попробовать
git push heroku masterтеперь
мой путь на Windows 8
добавьте каталог с ssh-keygen в переменную системного пути, обычно C:\Program файлы (x86)\Git\bin
открываем cmd, переходим в папку\c:\users\me
создать SSH ключ
ssh-keygen -t rsaвведите файл, в котором будет сохранен ключ (//.ssh / id_rsa): .ssh / id_rsa (измените неверный путь по умолчанию .ssh / somegoodname_rsa)
добавить ключ к В Heroku
heroku keys:addвыберите ключ из списка
перейдите в каталог приложений, напишите красивый код
Init a git repo
git initgit add .git commit -m 'chore(release): v0.0.1создать приложение Heroku
heroku createразвернуть приложение
git push heroku masterОткройте приложение
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-агент"
- скачать git
установки
включить 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