Git 在与 Heroku 交谈时使用了错误的电子邮件地址

Posted

技术标签:

【中文标题】Git 在与 Heroku 交谈时使用了错误的电子邮件地址【英文标题】:Git using wrong email address when talking to Heroku 【发布时间】:2011-02-27 21:53:14 【问题描述】:

git clone git@heroku.com:myapp.git

导致“myoldemailaddress 未授权访问 myapp”

myoldemailaddress 是我在旧 Heroku 帐户上使用的电子邮件地址,但它似乎无法使用它,我可以使用我的新帐户。

我已删除 .heroku 目录并重新生成它,它具有正确的用户名和密码,我可以看到我的应用程序已列出 我已经上传了我的密钥 (我现在已经重新生成了几次)ssh-keygen -t rsa -C mynewaddress

我卸载并重新安装了heroku 在同一台机器上的不同用户上它工作得很好。

我的帐户中有我的旧地址,但我不知道在哪里。

【问题讨论】:

你试过删除 .ssh 或 .git 吗?在尝试之前进行备份。 你的~/.ssh/config是什么样的? 【参考方案1】:

如果您仍然需要对此问题的答案,问题是您的 ssh-agent 中可能加载了旧的 ssh 密钥。

要检查您当前加载的密钥,请使用以下命令:

ssh-add -L

首先使用(记住 sudo)从代理中删除该密钥:

sudo ssh-add -d

然后,添加新密钥(带有您的新电子邮件地址的密钥)

ssh-add /path/to/your/private/key/file

这应该可以解决问题。

【讨论】:

我认为这不适用于我,因为加载了正确的密钥,但删除它并重新加载它修复了它。 附带说明,如果您想删除所有密钥,请执行 ssh-add -D(大写 D)。 另一个注意事项:对于ssh-add -d 调用,我需要运行ssh-add -d <filename>,其中filename 类似于~/.ssh/my_other_key【参考方案2】:

我通过以下步骤解决了同样的问题:

    删除了heroku上的应用程序

    使用

    生成新密钥

ssh-keygen -t rsa -C myNewEmail

    使用 上传了新密钥

heroku 键:添加

    重新创建并推送应用程序

有些步骤可能是可选的(例如删除应用程序),但这很有效!

E/

【讨论】:

【参考方案3】:

我遇到了同样的问题 - 重新启动我的电脑解决了它。

【讨论】:

【参考方案4】:

您的 myoldemailaddress 是否仍然在您的全局 gitconfig 文件中列为您的用户?

[user]
name = David
email = myoldemailaddress@...

我不确定 heroku 是否使用它,但这是我下一个要看的地方。

【讨论】:

【参考方案5】:

您可以在 Heroku 应用中添加“myoldemailaddress”作为协作者

【讨论】:

【参考方案6】:

就我而言,问题是我在 heroku 有两个用户,pupeno@home 和 pupeno@work。我的个人密钥注入了两个用户,所以当我从事个人项目时,我得到了:

$ git push heroku master

 !  pupeno@work not authorized to access home-project

fatal: The remote end hung up unexpectedly

像 Juan 解释的那样,删除并重新添加密钥是有效的,但直到我的计算机重新启动。从工作用户那里删除密钥最终修复了它。我做到了

heroku keys:remove pupeno@home

在我的工作机器上。不知道如何为老用户做这件事。我想删除 ~/.heroku/credentials,然后运行 ​​heroku 命令并使用旧用户登录。

【讨论】:

【参考方案7】:

您的项目根目录有 .git 文件夹吗?如果是这样,请检查那里的配置文件。项目级配置可能设置了您的旧电子邮件地址,这会覆盖您的全局设置。

【讨论】:

【参考方案8】:

查看覆盖全局 ~/.gitconfig 的 .git/config。

【讨论】:

【参考方案9】:

您也可以尝试从原点创建一个新分支,然后将所有更改重新应用到该新分支。不知何故,这对我有用。也许 Git 将用户电子邮件存储在本地存储库中的某个位置?我的问题是,即使我到处更改了我的电子邮件地址,并更新了我的密钥,它仍然不会更改为新的电子邮件地址。

【讨论】:

【参考方案10】:

这个插件https://github.com/heroku/heroku-accounts 非常适合我。它卡在我的工作 Heroku 帐户上,我用它来添加我的个人帐户并切换到它。使用非常简单,并提供了一种在帐户之间切换的简单方法。

使用终端,安装:heroku plugins:install heroku-accounts

添加帐号:heroku accounts:add personal

然后系统会提示您输入 heroku 电子邮件和密码。

要切换到该帐户:heroku accounts:set personal

要列出帐户:heroku accounts

查找当前账号:heroku accounts:current

【讨论】:

以上是关于Git 在与 Heroku 交谈时使用了错误的电子邮件地址的主要内容,如果未能解决你的问题,请参考以下文章

推送到Heroku时Ruby on Rails错误

git push heroku master 因解析错误而失败 - 哪个文件?

Heroku:应用程序分叉后的 Git 错误

运行 git heroku push master 时出现致命错误

使用heroku创建应用时报错 heroku does not appear to be a git repository

我想在 heroku 上托管我的不和谐机器人,我做的一切都是正确的,但是当我做 git push heroku 时,我在日志中出现错误