之前的工作平台是在windows上,换到Linux上,通过git clone 仓库的时候,出现了如下问题,
报错说: Permission denied (publickey).
如下图:
xxxxxx:~/xuzj$ git clone ssh://xxxx@191.168.181.151:38411/test.git
正克隆到 'test'...
The authenticity of host '[191.168.181.151]:29411 ([191.168.181.151]:29411)' can't be established.
ECDSA key fingerprint is SHA256:5G3HhJwe2QLutC5x8ePNQwNh+AeRXXMOHfbwZ9yvw.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[191.168.181.151]:29411' (ECDSA) to the list of known hosts.
xuzj@191.168.181.151: Permission denied (publickey).
fatal: 无法读取远程仓库。
请确认您有正确的访问权限并且仓库存在。
使用的Linux 自带有git 版本如:git version 2.17.1
原因:没有添加 与git上公钥对应的私钥 到 ssh-agent 的高速缓存中
解决办法如下:
1、拷贝已经创建好的私钥到 ~/.ssh目录下(这时默认对应的公钥已经添加到需要克隆的git仓库)
xxxxx@xxxxxx:~/.ssh$ ls
id_rsa
2、修改私钥文件的权限: chmod 600 ~/.ssh/你的私钥名称
xxxxx@xxxxxx:~/.ssh$ chmod 600 ~/.ssh/id_rsa
xxxxx@xxxxxx:~/.ssh$ ls -l
总用量 4
-rw------- 1 a5673 a5673 887 7月 11 14:32 id_rsa
3、查看ssh-agent 是否正在运行 : eval $(ssh-agent -s)
查询结果:Agent pid 22866
xxxxx@xxxxxx:~/.ssh$ eval $(ssh-agent -s)
Agent pid 22866
4、添加私钥到 ssh-agent: ssh-add ~/.ssh/你的私钥名称
或是cd 到 .ssh 文件夹下 执行命令: ssh-add
xxxxx@xxxxxx:~/.ssh$ ssh-add
Identity added: /home/xxxx/.ssh/id_rsa (/home/xxxx/.ssh/id_rsa)
5、查看结果
xxxxx@xxxxxx:~/.ssh$ ssh-add -l
1024 SHA256:PaKCRJvskRS7uRVx6acMIUbFGZ5vpD26fXuBTqpAwl0 /home/xxxxx/.ssh/id_rsa (RSA)
完。。。。
-----------------------------------------------------------------------------------------------------------------------------------------------
犯错1:
中间在 clone 仓库的时候 使用命令多了sudo 死活不成功,把sudo去了就可以了
sudo git clone ssh://xuzj@191.168.181.151:29411/test.git
参考:
1、linux-ssh-add命令-把专用密钥添加到ssh-agent的高速缓存中
2、https://www.cnblogs.com/wangss/p/7026716.html