複数の heroku アカウントを使用していたため、このエラーが発生しました。
チーム/プロジェクト アカウントで他のユーザーと共同作業しながら、自分の Heroku アカウントで独立して「プレイ」できるように、これをやりたかったのです。
これは、複数のユーザーがチーム アカウントで共同作業を行うという Heroku の概念とは別のものです。チーム アカウントを共同作業のアプリ所有者にして、個人アカウントが他のチーム メンバーと同様に権限の低い共同作業者として機能できるようにしたかったのです。 . 有料アドオンの追加/削除、アプリの削除/名前変更、請求書の表示は、所有者のみが行うことができます。
複数のアカウントをサポートするには (たとえば、自分の heroku アカウントなど)、あまりドキュメント化されていない次のアドオンを追加する必要があります。
$ heroku plugins:install git://github.com/ddollar/heroku-accounts.git
参照: https://github.com/ddollar/heroku-accounts
最終的に git SSH のセットアップは次のようになります。
(venv)MacPro:your_project username$ more .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://your_username@git.your_org.com/your_project.git
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "heroku_kb"]
url = git@heroku.individual:your_individual_app.git
fetch = +refs/heads/*:refs/remotes/heroku/*
[remote "heroku_ocp"]
url = git@heroku.your_project:your_team_app.git
fetch = +refs/heads/*:refs/remotes/heroku/*
[heroku]
account = individual
上記の最後の 3 つのセクションでは、2 つの個別の heroku リモートを定義し、どちらをアクティブにするかを指定します。
heroku-accounts アドオンは ~/.ssh/config エントリを追加することでこれらすべてを機能させます:
Host heroku.individual
HostName heroku.com
IdentityFile "/Users/username/.ssh/identity.heroku.individual"
IdentitiesOnly yes
Host heroku.your_project
HostName heroku.com
IdentityFile "/Users/username/.ssh/identity.heroku.your_project"
IdentitiesOnly yes
このようにアカウントを分離しないと、一方の SSH キーが他方に干渉し、私が行ったように SSH リムボになってしまい、次のようなエラーを google/forum-chasing して楽しんでいます。
MacPro:your_project username$ git push heroku master
! Your key with fingerprint cf:5b:6b:91:d5:71:e8:8b:73:dc:cf:86:56:fd:7a:49 is not authorized to access [insert appname here].
fatal: The remote end hung up unexpectedly