Я новичок в Rails, и я пытался развернуть очень простое приложение на Heroku. Это второе приложение, которое я развертываю, и первое, с которым я справился отлично. Однако у меня возникли проблемы с этим. Каждый раз, когда я « git push heroku master », я получаю такую ошибку:
! Ваш ключ с отпечатком пальца xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx не авторизован для> доступа к my_heroku_app.
фатальный: удаленный конец неожиданно завис
Я попытался управлять своими ключами после входа в heroku. Если я наберу в консоли « ключи героку », то получу:
Нет ключей для myemailaddress.
Однако, если я запустил команду « heroku keys: add », я получу
Обнаружен существующий открытый ключ: /Users/michele/.ssh/id_rsa.pub Загрузка открытого ключа ssh /Users/michele/.ssh/id_rsa.pub! Отпечаток пальца уже существует. Пожалуйста, используйте один ключ ssh для каждой учетной записи Heroku
Пожалуйста, помогите мне! Это так неприятно, я понятия не имею, что не так! Спасибо
heroku logout
, вошел в другую учетную запись и удалил ключ RSA по умолчанию из этой учетной записи. После этого я смог нажать только что сгенерированный ключ.ssh-add ~/.ssh/id_rsa_heroku
что и у меня,ssh-add ~/.ssh/identity.heroku.foo
потому что я также использую https://github.com/ddollar/heroku-accounts (менеджер нескольких учетных записей для Heroku).У меня тоже есть несколько ключей и несколько учетных записей heroku, поэтому я сталкиваюсь с этой проблемой каждые несколько месяцев. Как упоминали Джордано Скальцо, Том Карчрэ и user664833, основная проблема - это ssh-agent, которым вы управляете с помощью
ssh-add
команды. Страница руководства (man ssh-add
) на самом деле довольно ясна и лаконична, так что проверьте ее.Вы можете перечислить все ключи, о которых знает ssh-agent:
Вы можете удалить все ключи, о которых знает ssh-agent:
Или удалите определенный ключ с помощью
Не волнуйся! Фактически вы не удаляете ключи, а только меняете те, которые ssh-agent пытается использовать автоматически, например, когда вы пытаетесь нажать на heroku. При необходимости легко добавлять и удалять ключи, поэтому для меня, когда я расстраиваюсь из-за этой проблемы, самый простой способ исправить это - удалить все ключи и добавить обратно только тот, который я хочу использовать в данный момент.
источник
На вашем компьютере есть SSH-ключ, но этот SSH-ключ связан с другой учетной записью Heroku.
Если вам нужно использовать обе учетные записи для разных приложений на одном компьютере, вам следует создать новый ключ SSH на своем компьютере и загрузить его в Heroku:
Обязательно сохраните его как '/Users/User/.ssh/new_id_rsa.pub', когда вас спросят.
Затем вам нужно добавить альтернативный хост для
heroku.com
вашего~/.ssh/config
:А затем обновите
.git/config
в своем проекте, чтобы использовать псевдоним хоста:Выбирая между
heroku
иheroku-alt
в удаленном из.git/config
файлов конкретных проектов, вы можете управлять тем, какие проекты используют какие учетные данные.источник
Host heroku-alt not found: 3(NXDOMAIN)
. Я кладу это в терминал Mountain Lion.~/.ssh/config
тоже не существует, просто куча.pub
файлов и один с именемknown_hosts
. А идеи?Host
,HostName
и наIdentityFile
линии. Тогда должно работать нормально.Вот очень четкое объяснение, которого не хватает в документации Heroku или других ответах на вопрос. По крайней мере, кажется, что вся информация не появляется ни в одном месте. Это также позволяет вам понять проблему так, как это не делает инструмент учетных записей.
Heroku идентифицирует вас двумя способами:
Первый находится в .git / config
Кажется, это позволяет вам выполнять основные операции, используя
heroku
Второй способ, которым heroku идентифицирует вас, - это любая операция, использующая ssh (git push). Heroku идентифицирует вас по вашему ssh-ключу, как указано здесь: https://devcenter.heroku.com/articles/keys
Таким образом, каждая учетная запись heroku, над которой вы работаете, при использовании ssh должна будет отправить свой ключ на heroku. Следуйте любому руководству по созданию ключей ssh.
Ключ в том, чтобы заставить SSH использовать разные ключи для каждой учетной записи Heroku. Как это настроить? Вам нужно будет сделать 2 вещи:
1) Вам нужно будет создать «фиктивный» домен, который ваш .ssh / config будет перехватывать и перенастраивать. Это сообщит ssh «фактический» домен, который вы хотите, и какой специальный ключ ssh использовать.
2) Измените свой .git / config, чтобы использовать его при использовании git push. Вместо heroku.com используйте фиктивный домен, который вы установили в своем .ssh / config.
Вот и все :) Немного сложно и в то же время немного просто. У меня ушло 3 года на то, чтобы биться головой об стену методом проб и ошибок, чтобы обнаружить эту информацию. Это должно быть где-то четко задокументировано, но, по крайней мере, это начало.
источник
youn нужно будет создать новые ключи и добавить их
укажите новое имя файла после запуска
тогда (в моем случае)
источник
У меня такая же проблема на прошлой неделе. Эта ссылка выручила меня. Надеюсь, это вам немного поможет. http://devcenter.heroku.com/articles/keys
источник
В моем случае
heroku keys
уже был указан правильный ключ. Итак, все, что мне нужно было сделать, это запустить,ssh-add /path/to/that/key
и все начало работать нормально.источник
У меня также есть две учетные записи Heorku, и в качестве обходного пути я «пригласил» свою основную учетную запись (ту, ключ которой автоматически используется Heroku) в качестве соавтора моего проекта.
источник
Просто не хочу добавлять решение для пользователей Windows.
Сначала скачайте "Генератор ключей Putty"
Создайте ключ с помощью этого OBS, вам нужно переместить мышь в пустую область, чтобы создать случайность.
Сохраните ключи, просто не забудьте переименовать ключ в [имя] .pub
Запускаем
heroku keys:add
в терминале!источник
В моем случае проблема заключалась в используемой мной версии ssh. Я просто установил для переменной среды GIT_SSH другое значение ("GIT_SSH = / usr / bin / ssh"), и у меня все заработало.
источник