Не на Heroku, потому что отпечаток ключа


Я новичок в Rails, и я пытался развернуть очень простое приложение для Heroku. Это второе приложение, которое я развертываю, и первое, которое я смог сделать это просто отлично. Однако у меня возникли некоторые проблемы с этим. Всякий Раз, Когда Я "git push heroku master", Я получаю эту ошибку:

! Ваш ключ с отпечатком xx: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx: xx: xx не авторизован для >доступа к my_heroku_app.

фатальная ошибка: удаленный конец повесил трубку неожиданно

Я попытался управлять своими ключами после входа в heroku. Если я наберу в своей консоли" heroku keys", тогда я получаю:

нет ключей для myemailaddress.

однако, если я запускаю команду" heroku ключи: добавить" Я

найден существующий открытый ключ: / Users/michele/.ssh / id_rsa.паб Загрузка открытого ключа ssh / пользователи / michele/.ssh / id_rsa.паб ! Отпечатки пальцев уже есть. Пожалуйста используйте один ключ ssh на учетную запись Heroku

пожалуйста, помогите мне! Это так расстраивает, я понятия не имею, что случилось! Спасибо

10 130

10 ответов:

у меня была такая же проблема, я следил за этим сообщением и другими такого же рода без успеха : - ((

наконец, я нашел решение: Я должен был добавить свою новую личность rsa в свою машину!

Итак, прежде всего я создал новый ключ RSA:

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

затем добавил его в мою машину

ssh-add ~/.ssh/id_rsa_heroku

и, наконец, в Heroku

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

после этого,

git push heroku master

работал как шарм!

надеюсь, что это помогает.

у меня тоже есть несколько ключей и несколько учетных записей heroku, поэтому я сталкиваюсь с этой проблемой каждые несколько месяцев. Как уже упоминалось Giordano Scalzo, Tom Carchrae и user664833, основной проблемой является ssh-агент, которым вы управляете с помощью . Главная страница (man ssh-add) на самом деле довольно ясно и лаконично, так что проверить его.

вы можете перечислить все ключи, о которых знает ssh-агент:

ssh-add -l

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

ssh-add -D

или удалить определенный ключ с помощью

ssh-add -d ~/.ssh/id_rsa_example_key_file_use_your_own

не волнуйтесь! Вы на самом деле не удаляете ключи, а только меняете, какие из них ssh-агент автоматически пытается использовать, например, когда вы пытаетесь нажать на heroku. Легко добавлять и удалять ключи по мере необходимости, поэтому для меня, когда я расстраиваюсь из-за этой проблемы, Самый простой способ исправить это-удалить все ключи и добавить обратно только тот, который я хочу использовать в данный момент.

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

ваш компьютер имеет ключ SSH, но этот ключ SSH связан с другой учетной записью Heroku.

Если вам нужно использовать обе учетные записи для разных приложений на одном компьютере, вы должны сделать новый SSH-ключ на своем компьютере и загрузить его в Heroku:

$ ssh-keygen

обязательно сохраните его как ' / Users/User/.ssh / new_id_rsa.паб', когда подсказка спрашивает вас.

$ 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 файлы конкретных проектов вы можете управлять тем, какие проекты используют какие учетные данные.

вот очень четкое объяснение, которое отсутствует в документации Heroku или других ответах на этот вопрос. По крайней мере, вся информация, похоже, не появляется ни в одном месте. Это также позволит вам понять проблему таким образом, что инструмент приходится не.

Heroku идентифицирует вас двумя способами:

первый .git / config

[heroku]
    account = acccount_name

это, кажется, позволяет выполнять основные операции с помощью heroku

второй путь heroku идентифицирует вас с помощью любой операции, которая использует ssh (git push). Heroku идентифицирует вас по вашему ssh-ключу, как указано здесь: https://devcenter.heroku.com/articles/keys

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

таким образом, каждая учетная запись heroku, над которой вы работаете, должна будет отправить другой ключ heroku при использовании ssh. Следуйте учебник, чтобы создать свой ключ SSH.

ключ получает SSH, чтобы использовать разные ключи для каждой учетной записи Heroku. Как вы это настраиваете? Вам нужно сделать 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 / config, чтобы использовать это при использовании git push. Вместо heroku.com используйте домен манекен, установленный на устройстве .ssh / config

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


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

вот и все :) немного сложно и немного просто одновременно. Мне потребовалось 3 года стучать головой о стену и проб и ошибок, чтобы обнаружить эту информацию. Это должно быть четко задокументировано где-то, но по крайней мере это начало.

вам нужно будет создать новые ключи и добавить их

указать новое имя файла после запуска

ssh-keygen

затем (в моем случае)

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

У меня такая же проблема на прошлой неделе. Эта связь помогла мне. Я надеюсь, что это поможет вам немного. http://devcenter.heroku.com/articles/keys

в моем случае, heroku keys уже был указан правильный ключ. Итак, все, что мне нужно было сделать, это бежать ssh-add /path/to/that/key а потом все стало работать нормально.

У меня также есть две учетные записи Heorku, и в качестве обходного пути я "пригласил" свою основную учетную запись (тот, чей ключ автоматически используется Heroku) в качестве соавтора моего проекта.

просто хочу добавить решение для пользователей Windows.

  1. скачать "генератор шпатлевки"

  2. создать ключ с ним OBS вам нужно переместить мышь цветка пустой области для создания случайности.

  3. сохраните ключи, просто помните, чтобы переименовать свой ключ в [имя].паб

  4. Run heroku keys:add в терминале!

в моем случае проблема заключалась в версии ssh, которую я использовал. Я просто установил переменную среды GIT_SSH в другую ("GIT_SSH=/usr/bin / ssh"), и все работало нормально для меня.