Не могу нажать на 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" ), и все работало нормально для меня.