Mac多ssh key clone项目报错 Permission denied (publickey) fatal: Could not read from remote repository

  因为在一台电脑上既有公司的项目,也有自己私有的项目,所以要配置多个ssh key,来维持提交项目的方便性。

  Mac电脑生成ssh key的教程就很简单来,使用如下命令即可。

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

  默认在/Users/你的电脑用户名/.ssh 文件夹下生成 id_rsa (私钥)和 id_rsa.pub(公钥) 。

  如果是就生成一个ssh key,一路回车就好,没必添加密码为自己添麻烦。

  生成第二个或第n个key时,手工追加一个名字和原来默认的id_rsa区分开就好了,像我就在如下自定义key的名字为[id_rsa_gitee]

Enter file in which to save the key (/Users/xxx/.ssh/id_rsa): id_rsa_gitee

Enter passphrase (empty for no passphrase): 

Enter same passphrase again: 

Your identification has been saved in id_rsa_gitee.

Your public key has been saved in id_rsa_gitee.pub.

The key fingerprint is:

SHA256:1muQaF4W/+O8oOz9KCCEO6Ia3BUy55NNo8EvhjCsLIg [email protected]

The key's randomart image is:

+---[RSA 2048]----+

|                 |

|.   .            |

| + + = o.        |

|= + B O..=       |

|E. + OooS o      |

|+ + +o++ . o     |

|oo o ...  + o    |

|..     ..+ = .   |

|o      .+.o.=.   |

+----[SHA256]-----+

  这样在/Users/你的电脑用户名/.ssh 文件夹下,就会新生成 id_rsa_gitee 和 id_rsa_gitee.pub两个文件,如下图所示:

  

  然后手工添加config文件,我的配置如下:

  

Host xxx
    HostName 公司私服url
    User git
    IdentityFile ~/.ssh/id_rsa
Host gitee
    HostName gitee.com
    User git
    IdentityFile ~/.ssh/id_rsa_gitee

  然后把两个pub文件里的key,各自添加到对应的ssh key 配置中去,这个设置很简单,此处不在赘述。

  然后用ssh -T xxx 和 ssh -T gitee ,都有了友好提示,代码key生效了。

  公司私服clone ssh的工程都是可以成功,就是码云的代码clone不下来,报错如下:

xxx:OpenWorkspace xxx$ git clone -b dev [email protected]:Goalone/testBuding.git

Cloning into 'testBuding'...

[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.

  无权限,然后查了一下资料,发现是 没有把这个刚生成的 id_rsa_gitee 的密钥加到密钥链中。

  使用ssh-add 查询

zxxx:.ssh yyy$ ssh-add -l

The agent has no identities.

  果真没有,然后用 ssh-add 加入进去就可以了。  

zxxx:.ssh xxx$ ssh-add ~/.ssh/id_rsa_gitee

Identity added: /Users/xxx/.ssh/id_rsa_gitee (/Users/xxx/.ssh/id_rsa_gitee)

xxx:.ssh zxxx$ ssh-add -l

2048 SHA256:1muQaF4W/+O8oOz9KCCEO6Ia3BUy55NNo8EvhjCsLIg /Users/xxx/.ssh/id_rsa_gitee (RSA)

  并且用 ssh-add -l 能查到,再进行clone 就可以成功了。

  参考链接:http://shinancao.github.io/2016/12/18/Programming-Git-1/

        http://man.linuxde.net/ssh-add

猜你喜欢

转载自www.cnblogs.com/goalone/p/9343036.html