崭新电脑搭建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 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:

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 配置GitSSH密钥有几种方法。首先,你可以通过Git GUI来获取SSH密钥,这是推荐的方法。另外,你也可以通过公钥文件来获取SSH密钥。\[1\]如果你不清楚是否已经设置了用户名和邮箱,你可以使用指令进行查询,如git config user.name和git config user.email,或者使用git --list指令。\[2\]接下来,你需要检查是否已经有SSH Key,可以使用cd ~/.ssh指令来检查。\[2\]如果你已经有了SSH Key,你可以通过复制公钥的方式来添加SSH密钥。你可以使用Ctrl+A和Ctrl+C来复制公钥,或者找到C盘—》用户—》用户名—》.ssh目录下的id_rsa.pub文件,复制其中的公钥。最后,你可以验证SSH公钥是否添加成功,可以在Git Bash窗口中输入ssh -T git@github.com指令,如果看到"Hi B16031009! You've successfully authenticated, but GitHub does not provide shell access."的提示,就代表配置成功。\[3\]如果你想添加SSH密钥GitHub或者Gitee,你可以按照相应的步骤进行操作。\[1\] #### 引用[.reference_title] - *1* *3* [git中的SSH密钥配置](https://blog.csdn.net/qq_42449963/article/details/105571238)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Git 使用 —设置 GitSSH秘钥](https://blog.csdn.net/weixin_43866583/article/details/125680653)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值