“这是一个无效的源路径 / URL” / "git@igit.****.com: Permission denied (publickey). fatal: 无法读取远程仓库"

最近的一个项目使用sourceTree管理git仓库,因为自动构建,不得不上传本地大文件(paasport文件190M),因此使用SSH协议,本地生成了SSH私钥和公钥,并且也将公钥上传了,如图:

然而当使用sourceTree 进行push的时候,遇到了"git@igit.****.com: Permission denied (publickey). fatal: 无法读取远程仓库"。并且将本地仓库删除,试图重新从远程仓库拉取项目的时候,在URL中输入项目的SSH地址后,sourceTree不断提示“这是一个无效的源路径 / URL” 。无奈之下使用命令行,手动输入SSH key密码后竟然可以push,但终究非完美解决方案(因可视化操作方便,命令行关于改动不能一目了然)。后经查阅资料,问题出在本地git仓库没有和SSH 私钥关联上

ssh-add " id-rsa 文件地址"

注意此处使用的是id-rsa SSH的私钥,而非id-rsa.pub.
添加之后,可以用

$ ssh git@igit.***.com

测试是否添加成功。

关于SSH的创建和配置步骤如下:
1、打开命令行,输入:

cd ~/.ssh
ls

查看用户主目录下是否有.ssh文件。
查看.ssh文件目录下是否有id-rsa 和 id-rsa.pub文件,若有,直接跳过第二步。
2、创建SSH key

$ ssh-keygen -t rsa -C "[email protected]"

[email protected]替换为你自己的邮箱地址,然后回车,如果不想输入密码,点击三次回车就好了,如果想输入密码,遇到让你输入密码的地方,为你自己的SSH Key输入密码就好。
完成之后,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id-rsa是私钥,不能泄露出去,id-rsa.pub是公钥,可以放心地告诉任何人。
3、登录git托管地址,在里面setting中找到Add SSH Key,然后title任意填写,在key的文本框中填写id-rsa.pub中内容即可。

你可能感兴趣的:(“这是一个无效的源路径 / URL” / "git@igit.****.com: Permission denied (publickey). fatal: 无法读取远程仓库")