Не удается нажать на Heroku, потому что отпечаток ключа
Я новичок в 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.
Тем не менее, если я запускаю команду " ключи героя: добавь ", я получаю
Найден существующий открытый ключ: /Users/michele/.ssh/id_rsa.pub Загрузка открытого ключа ssh /Users/michele/.ssh/id_rsa.pub! Отпечаток пальца уже существует. Пожалуйста, используйте один ключ SSH для каждой учетной записи Heroku
Пожалуйста, помогите мне! Это так разочаровывает, я понятия не имею, что не так! Спасибо
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 keys:add ~/.ssh/id_rsa_heroku.pub
После этого,
git push heroku master
работал как шарм!
Надеюсь это поможет.
У меня тоже есть несколько ключей и несколько учетных записей героку, поэтому я сталкиваюсь с этой проблемой каждые несколько месяцев. Как упоминали Джордано Скальцо, Том Кэрчрэ и пользователь 664833, основная проблема - это 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, например, когда вы пытаетесь нажать на 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.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 = 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
Второй способ, которым героку идентифицирует вас, - любая операция, использующая 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.
Первая загрузка "Генератор ключей Putty"
Создайте ключ с его помощью OBS, вам нужно переместить указатель мыши над пустой областью, чтобы создать случайность.
Сохраните ваши ключи, просто не забудьте переименовать ваш ключ в [name].pub
Бежать
heroku keys:add
в терминале!
В моем случае проблема была в версии ssh, которую я использовал. Я просто установил переменную среды GIT_SSH на другую ("GIT_SSH=/usr/bin/ssh"), и у меня все работало нормально.