崭新电脑搭建Git的SSH - 设置 Git 的SSH秘钥 - 遇到的问题及解决办法

一、本地配置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 [email protected]: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:

猜你喜欢

转载自blog.csdn.net/weixin_52022921/article/details/128061632