【问题标题】:SSH KEY Already Exists BitbucketSSH KEY 已经存在 Bitbucket
【发布时间】:2022-03-18 08:16:53
【问题描述】:

对于 2 个多个项目,使用了 2 个多个 bitbucket 开发者帐户,但在同一台机器上。 一个 Bitbucket 帐户接受 SSH KEY。

当我将相同的密钥添加到其他比特桶帐户时,它显示KEY已经存在?

我怎样才能避免这个问题? 这背后有安全原因吗?

它在 Gitlab 中接受相同的密钥 注意:目前我们正在为其他帐户使用 HTTPS 连接?

【问题讨论】:

  • 多个 bitbucket 帐户不能拥有相同的 SSH 密钥 - 身份验证是通过密钥完成的,并且假设它对一个用户是唯一的。为另一个帐户生成第二个密钥。
  • @birryree 你是对的。但我在同一台机器上使用 SSH 密钥。您的意思是它认为个人帐户是唯一的吗?我不这么认为,因为 gitlab 中接受相同的键..
  • 当我得到反对票的理由时会更好。这可能是某人的答案......
  • gitlab 跟这个有什么关系?在 Bitbucket 中,唯一用户必须拥有自己的 ssh 密钥。想象一下这个基本的安全问题:用户 A 拥有 SSH 密钥 B 并可以访问一堆私有存储库。用户 C 能够将 SSH 密钥 B 添加到他自己的帐户。用户 C 现在可以访问与其他用户相同的私有存储库,即使没有任何意图发生这种情况。用户是否从同一台机器访问这些东西并不重要 - 到 Bitbucket,如果你们都有帐户,那么您仍然使用不同的帐户。
  • 再次大声笑 - 我很确定 gitlab 不接受在多个帐户上使用相同的密钥。

标签: git ssh bitbucket


【解决方案1】:

我怎样才能避免这个问题?这背后有安全原因吗?

是的:如果在 BitBucket 帐户中注册了公钥,这意味着使用该 ssh url 的任何 git 操作都将与该帐户相关联。

same 公共 ssh 密钥注册到不同的帐户意味着必须在两个 Bitbucket 用户帐户之间进行选择。这是不可能的。

您可以通过在~/.ssh/config 文件中声明两组 ssh 密钥来创建一对不同的公共/私人 ssh 密钥,并引用一个或另一个 Bitbucket 帐户。

见“How to use different keys for different Bitbucket repos in SmartGit?

host bitbucket1
        user git
        hostname bitbucket.org
        port 22
        identityfile /C/path/to/.ssh/key1
host bitbucket2
        user git
        hostname bitbucket.org
        port 22
        identityfile /C/path/to/.ssh/key2

然后:

  • 推送到bitbucket1:repoA 将使用user1
  • 推送到同一个仓库,但使用bitbucket2:repoA 将使用user2

【讨论】:

  • 现在我明白了真正的原因,但我只是想知道另一个通过 ~/.ssh/config 文件你能解释一下吗?并且还生成一个新的 ssh 密钥,而不用新路径覆盖现有的密钥...
  • @NandaKumar 完整的表达方式是“一个或另一个通过~/.ssh/config 文件”:意思是通过在~/.ssh/config 文件中声明两组不同的ssh 密钥来引用一个或另一个帐户。
  • 好极了。你太棒了..我检查了我的 .ssh 密钥文件夹,但找不到配置文件。我们需要创建文件还是我的机器中缺少它?
  • @NandaKumar 是的,您可以创建一个 ~/.ssh/config 文件:例如,请参阅nerderati.com/2011/03/17/… 中的一个实际示例。
  • 不错的一个.. 虽然 ssh-keygen 我怎么能改变目标路径?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-17
  • 2021-04-07
  • 1970-01-01
  • 2013-09-20
  • 2016-08-22
  • 2015-10-21
相关资源
最近更新 更多