Git push heroku master Разрешение отклонено (publickey). фатальный: удаленный конец неожиданно повесил трубку
Пожалуйста, извините немного разочарования, которое я постараюсь держать под контролем, поскольку Heroku использует SO как свою поддержку для клиентов (что, по-моему, это дрябло, по меньшей мере).
В течение последних пяти часов я пытаюсь опубликовать приложение, но с ключами что-то не так. Я прочитал десятки статей и попробовал наконечник после наконечника, пытаясь понять, где, в глупом, полностью непрозрачном процессе, Heroku напортачивается.
Мой вариант использования не так уж и трудный: я создал новую пару ключей для своих приложений heroku. Я установил этот ключ в качестве ключа:
> heroku keys
=== [email protected] Keys
ssh-rsa AAAAB3NzaC...avOqfA7ZBd [email protected]
Я могу войти и "создать" приложение (глупое имя, поскольку оно, похоже, создает репозиторий git, а не какое-либо приложение) без проблем. Но каждое * freaking * время, когда я пытаюсь нажать мое приложение, я получаю:
> git push heroku master
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Я не понимаю, что происходит с WTF; Я просто застрял, ударяя головой о клавиатуру без каких-либо проблем, но надеюсь, что всемогущий бог Google сможет ответить на него. И Google не отвечает на него (ну, позвольте мне забрать это, я видел около дюжины способов ответить на этот вопрос).
Для системы, которая должна быть простой, это шутка. Мне нравится идея Героку, но после того, как мы взяли пять наших, чтобы ничего не сделать, я думаю, что это неправильный выбор.
Ответы
Ответ 1
В Интернете существует множество решений. Я попытаюсь сконденсировать доступные варианты в один пост. Повторите попытку после каждого шага.
-
Шаг 1: попытка добавить открытый ключ в Heroku
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 [email protected]
-
Шаг 4: Удалите удаленный герой от git, воссоздайте соединение, добавив удаленный файл с помощью создания героя, будет только вариантом для новых репозиториев. Обязательно удалите старое репо, которое вы пытались создать
$ git remote rm heroku
$ heroku create
-
Шаг 5: Переустановите набор инструментов Heroku
Ответ 2
Ключи вашего героя и github не синхронизированы.
-
Определите, какой ключ вы хотите использовать (рекомендуем создать новый, т.е.
heroku_rsa).
-
Добавить ключ в github.
-
Добавьте тот же самый ключ к герою, используя: heroku keys:add
Ответ 3
Я столкнулся с той же проблемой, и это моя теория относительно того, что происходит:
Я давно зарегистрировался на Heroku, предоставив им свой публичный ключ github. При попытке обычного git push heroku master
он идет и ищет мой закрытый ключ, найденный в ~/.ssh/github_rsa
. Затем он терпит неудачу с сообщением, которое вы отправили.
Однако я попробовал позже ssh
на другой сервер, используя флаг -i
, чтобы указать мой "файл идентификации" (например, закрытый ключ), и он запросил пароль для моего личного ключа. Открыв секретный ключ, команда git push heroku master
работает. Некоторые выводы:
- Пока
ssh
запросит пароль для файла идентификации, git
не будет.
- Если вы разблокируете файл идентификатора другим методом, например
ssh
, он останется разблокированным для вашего использования git
.
- Кажется, нет никакой документации о том, как окончательно удалить защиту паролем в файле идентификации, в том числе с общей командой unix
keytool
.
- Выше решения о создании новой пары открытых/закрытых ключей кажутся обходным путем для этой проблемы с паролем, не зная, что проблема.
Ответ 4
Разрешение отклонено (publicickey) при развертывании кода heroku. фатальный: удаленный конец неожиданно повесил трубку
Я думаю, что это могло бы иметь ваше решение, это для меня как минимум
Ответ 5
Со мной казалось, что проблема заключалась в том, что у меня был ssh-agent, работающий в фоновом режиме, и соответствующий закрытый ключ не был добавлен к нему.
ps -afe | grep ssh-agent
ssh-add ~/.ssh/id_rsa_heroku_github
Мне также пришлось добавить открытый ключ в github (вручную) и heroku
heroku keys:add ~/.ssh/id_rsa_heroku_github.pub
Ответ 6
Если ни одно из других решений не работает для вас, убедитесь, что вы вошли в оболочку linux с вашей учетной записью и не с root счет.
Таким образом, если вы работаете с пользователем, который не является владельцем ваших ssh-ключей, git будет искать неправильные ключи для аутентификации