指纹(..)的密钥未经授权(协作)

时间:2012-05-25 16:23:43

标签: git heroku github key fingerprint

虽然有很多关于此错误的问题,但所有问题都与获取错误的人创建的应用程序有关,并且没有帮助解决我的问题。我已被添加为heroku上的应用程序的协作者。当我尝试通过

克隆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。

3 个答案:

答案 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中。

阅读https://devcenter.heroku.com/articles/keys了解详情。

答案 2 :(得分:1)

您可能有多个ssh密钥,默认情况下使用的是错误密钥。要解决此问题,您需要配置SSH以将正确的密钥发送到heroku.com。有关详细信息,请参阅this answer on Super User