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 交谈时使用了错误的电子邮件地址的主要内容,如果未能解决你的问题,请参考以下文章
git push heroku master 因解析错误而失败 - 哪个文件?
运行 git heroku push master 时出现致命错误
使用heroku创建应用时报错 heroku does not appear to be a git repository
我想在 heroku 上托管我的不和谐机器人,我做的一切都是正确的,但是当我做 git push heroku 时,我在日志中出现错误