bitbucket ssh密钥和git config用户之间是否有任何关系?
当我尝试ssh -T git@bitbucket.org
时,
与为当前git存储库尝试git config -l
时,它提供的用户不同。
git的ssh身份验证如何工作?
我还不确定.ssh
文件夹中的ssh密钥是哪个用户的?
我无法通过Bitbucket进行身份验证,以访问当前的git repo。
我该如何解决?
答案 0 :(得分:2)
Git配置与SSH身份验证(或HTTP / HTTPS身份验证)无关-仅与Git的内部提交跟踪有关。同样,SSH身份验证仅与SSH两端的系统(在本例中为您的系统和Bitbucket)有关,而HTTP / HTTPS身份验证仅与HTTP / HTTPS身份验证有关。 SSH用户和.git/config
用户是否匹配并不重要; Git会做它的事情,并在适当的时候运行SSH命令(带有SSH自己的配置)。
您执行的ssh -T git@bitbucket.org
检查显示哪个Bitbucket用户已添加了相关密钥。 (您可以查看它与ssh -Tv git@bitbucket.org
一起使用的是哪个特定密钥。)如果您无法使用SSH处理特定的Bitbucket存储库,但是您从ssh -T git@bitbucket.org
返回了用户名,则有一项或多项操作可能正在这里:
您收到的特定消息应指出可能是哪些潜在问题。 (您实际上没有提供足够的细节让我们知道。)
特别是对于Bitbucket,您还可以将Bitbucket用户名作为SSH URL的一部分放置在远程服务器中-类似于git clone username@bitbucket.org:owner/repo
或git remote set-url origin username@bitbucket.org:owner/repo
。这主要是为了使在同一系统上使用多个Bitbucket帐户的人可以保持其SSH密钥与众不同。 (当然,git@bitbucket.org
和~/.ssh/config
hack一样仍然有效,但是我认为特定于用户名的方法更为简洁。)