SourceTree 提示Permission denied或者SSH key添加失败(macOS Catalina)

问题

macOS 10.15.2中,通过SourceTree push代码到远程分支时,提示权限错误:

[email protected]: Permission denied (publickey). 
fatal: Could not read from remote repository

Please make sure you have the correct access rights and the repository exists.

并且Account中的GitHub帐号在重新配置后,提示帐号连接出错:
SourceTree 提示Permission denied或者SSH key添加失败(macOS Catalina)_第1张图片

解决方案

  1. 删除~/.ssh目录下由SourceTree自动生成的SSH key和配置文件
    • SourceTree生成的SSH key是以GitHub帐号名来命名的,其配置文件也会有SourceTree的注释
  2. 按照GitHub教程,重新生成SSH key
  3. 修改配置文件并将SSH key添加到ssh-agent,这里要确保配置文件~/.ssh/config中的IdentityFile为新生成的~/.ssh/id_rsa
  4. 将Public key添加到GitHub帐号中
  5. 重新在SourceTree中添加GitHub帐号,确保使用的SSH key是新生成的,比如id-rsa.pub

有上面的解决方案,纯属巧合。
我卸载了SourceTree并想使用Tower,但看完Tower的介绍后还是觉得SourceTree可能更适合我(无论是从价格还是GUI上)。我便重新来安装设置了一遍SourceTree,于是便有了上面的解决方案。

目前我还不知道其具体原因,等知道后再更新吧。

备注

  1. 事后,在网上找到了一个类似的方案,请看该问题下的第三个回答:How can I use my existing default ssh key with Sou…
  2. 为什么会出现这个问题是让我比较费解的。一开始没啥事,并且我能查看自己的Remote repo并且可以Clone下来各个Repo的代码,那账号的设置应该是没有问题的呀。(我Clone的大部分是Public repo,所以SSH连接有问题也没啥事。)
  3. Ben给了我通过命令行来完成push任务,并通过这种方式来重新设置的思路。

你可能感兴趣的:(工具)