Вот очень четкое объяснение, которого не хватает в документации Heroku или других ответах на вопрос. По крайней мере, кажется, что вся информация не появляется ни в одном месте. Это также позволяет вам понять проблему так, как это не делает инструмент учетных записей.
Heroku идентифицирует вас двумя способами:
Первый находится в .git / config
[heroku]
account = acccount_name
Кажется, это позволяет вам выполнять основные операции, используя 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 использовать.
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 года на то, чтобы биться головой об стену методом проб и ошибок, чтобы обнаружить эту информацию. Это должно быть где-то четко задокументировано, но, по крайней мере, это начало.