【发布时间】:2016-10-28 13:14:12
【问题描述】:
我已经遵循了一百万条关于这方面的指南,但我无法让它发挥作用。之前我通过 SSH 成功推送到我的私有 Bitbucket git 仓库,现在突然不行了。
我使用新密码重新创建了密钥,并将其添加到我的 Bitbucket 设置中,但它无法正常工作。
好的,这是我采取的步骤:
- 已删除旧密钥对(project1 和 project1.pub)
- 使用此命令重新创建它
ssh-keygen -f ~/.ssh/project1 -C "project1" - 为我的两个 Bitbucket 帐户在
~/.ssh文件中创建了一个config,内容如下:
Host project1
HostName bitbucket.org
IdentityFile ~/.ssh/project1
Host project2
HostName bitbucket.org
IdentityFile ~/.ssh/project2
- 抓取
project1.pub的内容并在我的Bitbucket 帐户中创建一个新的SSH 密钥条目。 - 在我的
~/.zshrc插件列表中添加了ssh-agent,如下所示:plugins=(git ssh-agent)并重新启动终端 -
ssh-add -l只看到project2已加载 -
ssh-add ~/.ssh/project1,输入我的密码并成功,如下所示:
2048 SHA256:THESHA256 /Users/myuser/.ssh/project2 (RSA)
2048 SHA256:THESHA256 /Users/myuser/.ssh/project1 (RSA)
- 重新启动终端并执行
ssh-add -l并列出了两个条目 - 去了我的项目并做了
git push,它告诉我我无权访问。
当我输入ssh -T git@bitbucket.com 时,它告诉我我使用 project2 的用户名登录。
以 project2_user 身份登录。
我的系统是OS X 10.11.5
我永远无法在我的计算机上修复多个身份并且总是使用 HTTPS,但我需要使用 SSH 使一切更加安全,这也允许我的帐户具有双重身份验证。因此,现在必须使用 SSH,我不知道该怎么办。
P.S:我也为 project2 做了身份创建步骤,但我很确定它也不起作用。
我遵循的指南:
编辑
project2 没有密码,而 project1 有!只是觉得这可能是相关的。
编辑 2
我使用ssh-add -D 删除了所有加载的密钥,然后添加了 project1 的密钥,输入密码并推送。有效。但是现在我的另一个身份无法正常工作,因为它的密钥没有加载。
为什么我的多重身份不起作用?
【问题讨论】:
-
两个项目的
git config --get remote.origin.url输出什么?
标签: git authentication ssh bitbucket ssh-keys