不同的 git 配置用户和 ssh 密钥,如何使 git 拉取工作?
Different git config user and ssh keys, how do I make git pull work?
bitbucket ssh 密钥和git 配置用户之间有什么关系吗?
当我尝试 ssh -T git@bitbucket.org
,
与我尝试 git config -l
当前 git 存储库时相比,它提供了不同的用户。
git 的 ssh 身份验证如何工作?
我也不确定 .ssh
文件夹中的 ssh 密钥属于哪个用户?
我无法对 bitbucket 进行身份验证以访问当前 git 存储库。
我该如何解决这个问题?
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 用户没有该存储库的相关权限。
- 您正在尝试推送到指定了分支权限的分支,但您无权执行您正在尝试执行的操作。
- 该密钥已作为 "access key" 添加到 Bitbucket - CI/CD 系统用于访问给定存储库的只读密钥 - 您正在尝试推送或试图在它无权访问的回购协议上使用该密钥。
- 还有一个问题您没有在此处提及 - 可能您的本地存储库副本比 Bitbucket 的提交少了一些,或者您的本地副本在磁盘上已损坏,或者您的本地 SSH 客户端无法正常工作正确。
您收到的具体消息应该指出可能是这些潜在问题中的哪一个。 (您没有真正了解足够的细节让我们知道。)
特别是使用 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 也是如此,但我认为特定于用户名的方法更简洁。)
bitbucket ssh 密钥和git 配置用户之间有什么关系吗?
当我尝试 ssh -T git@bitbucket.org
,
与我尝试 git config -l
当前 git 存储库时相比,它提供了不同的用户。
git 的 ssh 身份验证如何工作?
我也不确定 .ssh
文件夹中的 ssh 密钥属于哪个用户?
我无法对 bitbucket 进行身份验证以访问当前 git 存储库。
我该如何解决这个问题?
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 用户没有该存储库的相关权限。
- 您正在尝试推送到指定了分支权限的分支,但您无权执行您正在尝试执行的操作。
- 该密钥已作为 "access key" 添加到 Bitbucket - CI/CD 系统用于访问给定存储库的只读密钥 - 您正在尝试推送或试图在它无权访问的回购协议上使用该密钥。
- 还有一个问题您没有在此处提及 - 可能您的本地存储库副本比 Bitbucket 的提交少了一些,或者您的本地副本在磁盘上已损坏,或者您的本地 SSH 客户端无法正常工作正确。
您收到的具体消息应该指出可能是这些潜在问题中的哪一个。 (您没有真正了解足够的细节让我们知道。)
特别是使用 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 也是如此,但我认为特定于用户名的方法更简洁。)