一、本地配置Git 的SSH秘钥
1、大致步骤
配置使用ssh方式来提交和克隆代码。
大概可以分为一下几个步骤:
1)设置Git的user name和email:(如果是第一次的话)
2)检查是否已经有SSH Key。
3)生成密钥
4)添加密钥到ssh-agent
2、设置Git的user name和email:
(如果是第一次的话)
如果不清楚自己有设置用户名和账户的话,可以使用指令进行查询,如下:
git config user.name
git config user.email
或者
git --list
3、检查是否已经有SSH Key
cd ~/.ssh
接着输入ls,列出该文件下的文件,看是否存在 id_isa 和 id_isa.pub 文件(也可以是别的文件名,只要有 yourName 和 yourName.pub 等存在),如果存在的话,证明已经存在 ssh key了,如果没有则说明没有ssh key。如下:
4、生成秘钥 ssh key
# 这里的邮箱是指自己的邮箱
ssh-keygen -t rsa -C "邮箱"
比如,我这边生成的秘钥信息如下:
一直按回车,就可看到上图红框内的秘钥默认保存路径;
我的秘钥默认保存在路径:
/c/Users/86178/.ssh
再按下回车:
最后得到了两个文件:id_rsa和id_rsa.pub。
秘钥就在生成的 .ssh 文件夹下的 id_rsa.pub。
5、添加密钥到ssh-agent
ssh-agent是一种控制用来保存公钥身份验证所使用的私钥的程序,其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。
# start the ssh-agent in the background
eval "$(ssh-agent -s)"
如下:
将生成的ssh-key添加到ssh-agent
ssh-add ~/.ssh/id_rsa
如下:
通过上面的操作,SSH秘钥的设置过程就完成了,以后本地库和远程库之间的链接,通过SSH就可以互通了,当然通过HTTPS也是可以的!
二、在Clone代码的Git网址设置SSH秘钥
在GitLab上传或下载项目的时候出现Permission denied, please try again问题。
在使用git克隆或上传项目的时候出现 git@xxx password: 让你输入密码,你发现无论输入什么都会出现Permission denied, please try again问题,其实这个主要是工程的SSH key没有加入到你的GitLab账户下。
1、查看通过上面新生成的SSH Key
命令:
cat ~/.ssh/id_rsa.pub
此时出现多行密钥,从开头复制到邮箱后面结束。
如下:
2、登陆GitLab设置SSH Keys
3、进入GitLab,登陆,点击右侧自己头像,进入Settings。
4、左侧导航栏点击SSH Keys,将复制的内容粘贴到Key下方框中。
此时,Title会自动将你的邮箱填入,这个地方是用来标记你用的哪台电脑生成的这个SSH Key。
5、点击 Add key,成功。
6、然后在终端进行
git clone git@git.xxxxx.com:abc/xxx.git
7、项目clone成功
参考:mac上gitclone出现password: Permission denied, please try again. - Ray(Mr.huang) - 博客园
三、配置本地的config文件
完成上述两个步骤后,再次用SSH 克隆代码报错:
**Unable to negotiate with 192.168.99.14 port 8888: no matching host key type found. Their offer: ssh-rsa
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists. **
1、出现上述问题,在你本地的.ssh文件夹里面增加一个配置文件config即可。
代码:
Host *
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
建好后如图:
**注意:config没有后缀名,直接保存 **
之后就可以成功用SSH克隆gitlab上的代码到本地了~~
参考:
Git 使用 —设置 Git 的SSH秘钥_嵌入式之入坑笔记的博客-CSDN博客_git添加ssh密钥
git出现Please make sure you have the correct access rights and the repository exists. 问题_玉巄的博客-CSDN博客_unable to negotiate with 192.168.99.14 port 8888:
版权归原作者 kikaori-茶 所有, 如有侵权,请联系我们删除。