虽然有很多关于此错误的问题,但所有问题都与获取错误的人创建的应用程序有关,并且没有帮助解决我的问题。我已被添加为heroku上的应用程序的协作者。当我尝试通过
git clone git@heroku.com:myapp.git -o heroku
或者如果我克隆代码它是基于github并运行
git push heroku master(执行git add和git commit之后)
它给我错误“你的指纹密钥(...)无权访问myapp。”我尝试过heroku密钥的各种组合:add,heroku keys:clear和ssh-keygen。
此应用程序上的其他合作者没有问题推向heroku。
答案 0 :(得分:4)
我收到此错误是因为我使用了多个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
上面的最后三节定义了两个独立的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-追逐一个看起来像这样的错误:< / p>
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
答案 1 :(得分:1)
这听起来像某种配置问题。你真的应该仔细检查你是否对应用程序拥有适当的权限,并且你的SSH密钥已经注册了heroku。
确保您使用的是您认为正在使用的按键。基本上,cat ~/.ssh/id_rsa.pub
(或您正在使用的任何键)应显示在heroku keys --long
中。
答案 2 :(得分:1)
您可能有多个ssh密钥,默认情况下使用的是错误密钥。要解决此问题,您需要配置SSH以将正确的密钥发送到heroku.com。有关详细信息,请参阅this answer on Super User。