赞
踩
配置使用ssh方式来提交和克隆代码。
大概可以分为一下几个步骤:
1)设置Git的user name和email:(如果是第一次的话)
2)检查是否已经有SSH Key。
3)生成密钥
4)添加密钥到ssh-agent
(如果是第一次的话)
如果不清楚自己有设置用户名和账户的话,可以使用指令进行查询,如下:
- git config user.name
- git config user.email
- 或者
- git --list
cd ~/.ssh
接着输入ls,列出该文件下的文件,看是否存在 id_isa 和 id_isa.pub 文件(也可以是别的文件名,只要有 yourName 和 yourName.pub 等存在),如果存在的话,证明已经存在 ssh key了,如果没有则说明没有ssh key。如下:
- # 这里的邮箱是指自己的邮箱
-
- ssh-keygen -t rsa -C "邮箱"
比如,我这边生成的秘钥信息如下:
一直按回车,就可看到上图红框内的秘钥默认保存路径;
我的秘钥默认保存在路径:
/c/Users/86178/.ssh
再按下回车:
最后得到了两个文件:id_rsa和id_rsa.pub。
秘钥就在生成的 .ssh 文件夹下的 id_rsa.pub。
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也是可以的!
在GitLab上传或下载项目的时候出现Permission denied, please try again问题。
在使用git克隆或上传项目的时候出现 git@xxx password: 让你输入密码,你发现无论输入什么都会出现Permission denied, please try again问题,其实这个主要是工程的SSH key没有加入到你的GitLab账户下。
命令:
cat ~/.ssh/id_rsa.pub
此时出现多行密钥,从开头复制到邮箱后面结束。
如下:
此时,Title会自动将你的邮箱填入,这个地方是用来标记你用的哪台电脑生成的这个SSH Key。
git clone git@git.xxxxx.com:abc/xxx.git
参考:mac上gitclone出现password: Permission denied, please try again. - Ray(Mr.huang) - 博客园
完成上述两个步骤后,再次用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.
代码:
- Host *
- HostkeyAlgorithms +ssh-rsa
- PubkeyAcceptedKeyTypes +ssh-rsa
建好后如图:
注意:config没有后缀名,直接保存
之后就可以成功用SSH克隆gitlab上的代码到本地了~~
参考:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。