Git 始终需要从两台计算机更新使用Bitbucket的ssh密钥
我在使用SSH连接和生成的密钥对处理Bitbucket上托管的repo时从来没有遇到过任何问题。但是,由于我从两台不同的机器(例如家庭机器、工作机器)访问我的回购协议,我总是Git 始终需要从两台计算机更新使用Bitbucket的ssh密钥,git,version-control,bitbucket,atlassian-sourcetree,Git,Version Control,Bitbucket,Atlassian Sourcetree,我在使用SSH连接和生成的密钥对处理Bitbucket上托管的repo时从来没有遇到过任何问题。但是,由于我从两台不同的机器(例如家庭机器、工作机器)访问我的回购协议,我总是 Permission denied (publickey).fatal: Could not read from remote repository. 每次我换机器。因此,我目前不是很好的解决办法是用 rm -r .ssh (我只是在使用一个)然后使用Sourcetree或Terminal生成一个新的。然后,我从我的B
Permission denied (publickey).fatal: Could not read from remote repository.
每次我换机器。因此,我目前不是很好的解决办法是用
rm -r .ssh
(我只是在使用一个)然后使用Sourcetree或Terminal生成一个新的。然后,我从我的Bitbucket帐户中删除我正在使用的机器的旧密钥,并粘贴到新密钥中
从那以后,这种方法一直有效,但必须有更好的解决方案。我浏览了Bitbucket文档,但它只是说为每台正在访问回购协议的机器添加一个新密钥,显然这不起作用。我肯定我错过了什么。谢谢你的帮助 确保添加第二个键时不会影响第一个键
如果你不能用2把钥匙使钻头铲斗工作,你可以在两台机器上使用相同的钥匙。只需将
~/.ssh
目录从当前工作的机器复制到另一台机器。您应该将来自家庭机器和工作机器的ssh密钥添加到您的bitbucket帐户中
将ssh密钥添加到bitbucket的整个步骤如下(您可以跳过已经完成的步骤):
ssh-keygen
命令。它将在本地计算机中生成ssh密钥。复制公钥的内容id_rsa.pub
,将其添加到bitbucket中(如步骤2所示)id\u rsa.pub
(在步骤1中)的内容粘贴到密钥选项->添加密钥
id_rsa.pub
,将其添加到bitbucket中(如步骤4所示)id\u rsa.pub
(在步骤3中)如果您仍然无法访问bitbucket repo vis ssh密钥,请通过命令
ssh-T进行故障排除hg@bitbucket.org
详细信息,您可以参考文档。因此,这里有一个链接,指向如何解决该问题的指南
如评论中所述,苹果改变了Sierra/High Sierra中的SSH行为。关于这个主题()有一个状态为“已解决”的Sourcetree问题,因此Sourcetree向
.ssh/config
添加了自2.7.2以来所需的标志,但这对我来说仍然不起作用。我需要向我的launch Agent添加ssh add-A
。您尝试过向您的帐户添加多个密钥吗?那么这是macOS Sierra还是macOS High Sierra?ssh add-L
是否列出您的密钥?这两台机器当前都在高速运行。命令的输出是代理没有标识。
应该是这样的吗?似乎我必须在生成密钥后手动添加密钥,这可能是问题所在……所以我已经找到了问题所在,它不是由Bitbucket引起的,而是由两台机器引起的。当我通过Sourcetree或Terminal生成密钥时,即使我使用ssh add~/.ssh/id\u rsa
手动添加密钥,也会在重启机器后从ssh列表中删除密钥。当我在重启后键入ssh add-L
时,它返回代理没有标识。
。任何想法,为什么要删除密钥以及如何修复它?忘记提到@jimredmondsho谢,但这正是我正在使用的过程,它工作不正常:/首先,请确保来自两台机器的ssh密钥都添加到bitbucket中。然后可以通过命令ssh-T测试连接hg@bitbucket.org
(我在回答的最后更新了)。谢谢!这正是我使用的docs页面,但是我如何影响另一个键呢?我不需要在设置页面的列表中添加另一个键吗?那么这将如何改变第一个键中的任何数据呢?复制选项实际上似乎是一个可能的解决方案!当我再次访问我的工作机器时,我将尝试此操作!我将在这里发布结果。因此,您的方法当然有效,但与多台计算机共享一个密钥可能不是一个好主意。当您想撤销某台机器时,您不能仅使用一个密钥。不管怎样,我现在的问题是两台机器在重启后都会清除ssh密钥列表(请参阅顶部的注释)。