Разрешение Героку отрицается (публикование) фатальным: не удалось прочитать из удаленных репозитариев 'woes
Я искал в течение многих часов, глядя на решение моей, казалось бы, простой в установке проблемы. Это не то, что мой поиск ни к чему не привел, это то, что в моем поиске появилось столько разных решений, из которых никто не работал.
В любом случае, я просто не могу нажать, вытащить или извлечь из моего репозитория Heroku с моего Mac. Каждая попытка дает мне (как будто это насмехается) следующую ошибку:
'Разрешение отклонено (publickey). фатальный: не удалось прочитать с удаленного хранилище.
Я попытался (и повторил попытку) исправить это разными способами. Как я уже сказал, я потратил хороший кусок последних двух дней на поиски ответа. Вот некоторые из вещей, которые я пробовал:
- heroku keys: clear, затем ключи героя: add
- Регенерация ключа ssh сама по себе с помощью 'ssh-keygen -t rsa'
- Очистка моего .ssh-каталога, за которым следуют ключи героя: clear, за которым следует генерация ключа ssh
- Удаление моего приложения на герою и повторное создание (к счастью, не так много было)
Я могу извлечь из моего репозитория GitHub, поэтому я знаю, что это не сетевое подключение (pinging heroku также работает).
Как временное решение (которое, я надеюсь, не превращается в постоянный), я вошел в свой экземпляр Ubuntu Amazon AWS ec2. Тяготение и толкание к и от Heroku прекрасно работает. По этой причине я все еще чувствую, что проблема связана с ключом ssh на моем Mac. Оба ключа отображаются под моей учетной записью Heroku. Адрес электронной почты в конце ключевого вопроса?
EDIT: я могу нажать и вытащить из GitHub (я не использую ssh, однако), так почему бы не Heroku?
В этот момент я готов попробовать что угодно. Спасибо!
Ответы
Ответ 1
Я просто подумал, что разделю, что нашел ответ на свой вопрос.
Списание моей проблемы сделало это еще более понятным для меня, и я дополнительно исследовал, где я думал, что моя проблема заключается: ключ ssh
Оказывается, я был прав. Проблема была не в самом ключе, а в том, что я не добавил его в свой локальный список Mac известных ключей ssh. Поэтому, несмотря на то, что у моей учетной записи Heroku был правильный ключ, мой Mac не смог аутентифицироваться, потому что он не мог найти этот ключ на моем компьютере. Решение?
ssh-add ~/.ssh/id_rsa
#and, to confirm it been added to the known list of keys
ssh-add -l
Я хотел бы отдать должное https://help.github.com/articles/error-permission-denied-publickey за хорошую ссылку.
Ответ 2
Я знаю, что это уже ответили. Но я хотел бы добавить свое решение, поскольку это может быть полезно для других в будущем.
Общая ошибка ключа: Permission denied (publickey)
. Вы можете исправить это, используя keys:add
, чтобы уведомить Heroku о своем новом ключе.
Короче следуйте следующим шагам: https://devcenter.heroku.com/articles/keys
Сначала вам нужно создать ключ, если у вас его нет:
ssh-keygen -t rsa
Во-вторых, вам нужно добавить ключ к Heroku:
heroku keys:add
Ответ 3
У меня была такая же ошибка (на окнах 7), и причина была другая. Я решил это по-другому, поэтому я решил добавить причину и решение для других.
Несмотря на то, что ошибка, казалось, указывала на герою, действительно, ошибка заключалась в "Heroku can't get to the git repository"
. Я поклялся, что у меня были те же ключи на всех серверах, потому что я создал его и загрузил его один за другим в одно и то же время.
Проведя почти день на этом, я понял, что, поскольку git показывал мне только отпечаток пальца, а не фактический ключ. Я не мог проверить, соответствует ли этот ключ одному из моих HD или герою. Я просмотрел файл известных хостов и угадал, что... он показывает ключи для каждого сервера, и я смог ясно видеть, что открытые ключи git и heroku не совпадают.
1) Я удалил все файлы в моей ключевой папке, ключ от github, используя их веб-сайт, и ключ от heroku с помощью git bash и команду heroku keys:clear
2) Следуйте инструкциям github здесь, чтобы создать новую пару ключей и загрузить открытый ключ в git
3), используя git bash-
heroku keys:add
загрузить тот же ключ в герою.
Теперь git push heroku master
работает.
какой кошмар, надеюсь, это помогло кому-то.
Брайан
Ответ 4
Проблема, с которой я столкнулась, заключается в том, что я использовал только https для моей учетной записи GitHub. Мне нужно было убедиться, что моя учетная запись GitHub была настроена для доступа ssh, и что GitHub и heroku использовали оба открытых ключа. Это шаги, которые я предпринял:
-
Перейдите в каталог ~/.ssh и удалите id_rsa и id_rsa.pub, если они есть. Я начал с новых ключей, хотя это может и не понадобиться.
$ cd ~/.ssh
$ rm id_rsa id_rsa.pub
- Следуйте инструкциям на gitHub в сгенерируйте ключи ssh
-
Войдите в heroku, создайте новый сайт и добавьте открытые ключи:
$ heroku login
...
$ heroku create
$ heroku keys:add
$ git push heroku master
Ответ 5
У меня был тот же случай на linux ubuntu и он просто исправил его, похоже, что ОС была запутана между/root/.ssh/и home/user/.ssh/dir, что я сделал:
- удалены все ключи из каталога root и home/user.shh.
- сгенерировал новый ключ, обязательно обратите внимание на путь создания (/home/you/.ssh/id_rsa) или (/корень/.ssh/id_rsa)
- проверить ключи героя
heroku keys
- если там есть клавиши
heroku keys:clear
-
heroku keys:add
теперь, если геройку не удалось найти ключ и попросил сгенерировать один правильный нет, и это означает, что у вас есть такая же проблема, как у меня, добавьте команду вроде этого heroku keys:add /root/.ssh/id_rsa.pub
путь, Будет добавлен тот, который вы получили на шаге 2.
- попробуйте
git push heroku master
сейчас
Ответ 6
Мой путь в Windows 8
-
Добавить каталог с ssh-keygen в системную переменную PATH, обычно C:\Program Files (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
Выберите созданный ключ из списка
-
Перейдите в каталог приложений, напишите красивый код
-
Инициировать git repo git init
git add .
git commit -m 'chore(release): v0.0.1
-
Создать приложение Heroku heroku create
-
Разверните приложение git push heroku master
-
Откройте приложение heroku open
Ответ 7
Имел подобную проблему и много раз пробовал. В конечном итоге для меня работала установка Gnu на Windows (https://github.com/bmatzelle/gow/releases) и убедитесь, что она использовала инструмент ssh внутри этого каталога а не с Git. После установки теста с (убедитесь, что он находится в вашей среде PATH, которая предшествует 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/
Как только ключи были отправлены в герою (ключи героя: добавьте c:\Users\Person.ssh\id_rsa.pub), используйте
ssh -v <username>@heroku.com
и убедитесь, что ваш стек показывает использование Putty - то есть рабочий стек:
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 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).
Ответ 8
вам нужно создать новый ключ ssh, введя следующие
- ssh-keygen -t rsa
Затем вам нужно добавить:
- ключи героя: добавьте
Тогда, если вы наберете
- heroku open
Проблема решена.
В любом случае это сработало для меня, вы могли бы попробовать...
Ответ 9
Я получил ту же ошибку, и потому что у меня есть 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), самый новый
Затем я исправляю ошибку.
Ответ 10
Я использую этот метод для решения этой проблемы
Возможно, вы можете попробовать.
"Включить ssh-agent"
http://git-scm.com/
-
Установите его
-
Включить ssh-agent
C:\Program Files\ Git\cmd
запуск SSH-агент
Отключение сообщения после активации I-агента
Надеюсь, это поможет вам.
Ответ 11
У меня была такая же проблема. И я попробовал reset мои ключи, как все сказали, но это все еще не сработало. Потому что я переименовал приложение.
Так что я сделал с reset моими ключами, а также переименовал приложение из консоли. Проверьте этот вопрос для получения дополнительной информации: Проблема с Heroku push app
Ответ 12
SO Итак, простое решение, перейдите к c:/Users/user_name/.ssh/и удалите все пары pub/private key, таким образом, герой создаст вам ключи.
Ответ 13
У меня была подобная ошибка ssh heroku, которую я не мог решить.
В качестве обходного пути я использовал новую функцию heroku http- git (http-транспорт для удаленной системы "heroku" вместо ssh). Подробности здесь: https://devcenter.heroku.com/articles/http-git
(Короткая версия: если у вас уже есть стандартный проект, запустите heroku git: remote --http-init, чтобы изменить "heroku" удаленно на http.)
Хорошая быстрая работа, если у вас нет времени на исправление/устранение проблемы с ssh.
Ответ 14
Я хотел бы добавить другое решение, так как не видел его здесь. Моя проблема заключалась в том, что героику связывался с неправильным URL (так как я продолжал играть с именами url). Редактирование удаленного URL-адреса решило мою проблему:
git remote set-url heroku <heroku-url-here>