Не могу нажать на Heroku, потому что ключевой отпечаток

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

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

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

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

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

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

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

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

Ответ 1

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

Наконец, я нашел решение: Я должен был добавить свой новый идентификатор 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

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

Надеюсь, что это поможет.

Ответ 2

У меня тоже есть несколько ключей и несколько учетных записей heroku, поэтому я сталкиваюсь с этой проблемой каждые несколько месяцев. Как упоминалось Джордано Скальцо, Том Каршрей и user664833, основной проблемой является ssh-agent, который вы управляете с помощью команды ssh-add. Страница руководства (man ssh-add) на самом деле довольно четкая и краткая, поэтому проверьте ее.

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

ssh-add -l

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

ssh-add -D

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

ssh-add -d ~/.ssh/id_rsa_example_key_file_use_your_own

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

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

Ответ 3

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

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

$ ssh-keygen

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

$ 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 = [email protected]:myapp.git
  fetch = +refs/heads/*:refs/remotes/heroku/*

Выбирая между heroku и heroku-alt в удаленных файлах .git/config определенных проектов, вы можете управлять тем, какие проекты используют учетные данные.

Ответ 4

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

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

Первый находится в .git/config

[heroku]
    account = acccount_name

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

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

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

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

Ключ получает SSH для использования разных ключей для каждой учетной записи Heroku. Как вы это настроите? Вам нужно сделать 2 вещи:

1) Вам необходимо создать домен 'dummy', который ваш .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 = [email protected]


[remote "heroku"]
    url = [email protected]_unique_key:myapp.git

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

Ответ 5

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

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

ssh-keygen

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

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

Ответ 9

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

  • Сначала загрузите "Генератор ключей шрота"

  • Создайте ключ с ним. OBS вам нужно переместить указатель мыши на пустую область, чтобы генерировать случайность.

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

  • Запустите heroku keys:add в терминале!

Ответ 10

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