Git提交时有Https和SSH两种验证方式,Https的方式需要帐号和密码比较好理解,不过它需要在每次提交时输入帐号和密码,有点麻烦;而SSH的功能可以粗暴的理解为记住帐号密码,不过对这个过程有人会有点疑惑。首先,我们用SSH命令生成一个公钥-私钥对,我们会把公钥添加到Git的服务器,把私钥放在本地。提交文件的时候Git服务器会用公钥和客户端提交私钥做验证(具体细节不究),如果验证通过则提交成功,那么我们在把公钥添加到服务器的时候肯定是需要登录Git服务器的,这个过程其实可以理解为帐号和密码托管给SSH了,所以也是相当于输入了帐号密码,但是由SSH帮你记住了。这么理解是可以,但是SSH的意义不仅仅是这样,关于SSH的更详细内容看客可以自行再了解。原文链接:blog.csdn.net/yanzhenjie1…
man ssh
终端可以查看详细的手册,大概1000行。懒得看跳过吧。用到再去查。
man ssh
配置
1.进入设置页面

2.点击SSH密钥

3.生成ssh公钥私钥
GitLab有教程,你也可以看。

打开终端
⌘+空格 输入终端或者terminal

ssh-keygen -t ed25519 -C "email@example.com"
email@example.com部分改为你的gitlab账号邮箱

关于ed25519
来自wikiPedia 延伸阅读: 一场椭圆曲线的寻根问祖之旅
ed25519.cr.yp.to/Ed25519是一个数… 一个4核2.4GHz 的 Westmere cpu,每秒可以验证 71000 个签名,安全性极高,等价于RSA约3000-bit。签名过程不依赖随机数生成器,不依赖hash函数的防碰撞性,没有时间通道攻击的问题,并且签名很小,只有64字节,公钥也很小,只有32字节。 部署情 况:ianix.com/pub/ed25519…
版权声明:本文为CSDN博主「老杨_QQ122209017」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接: blog.csdn.net/sinat_34070…
ed25519加密解密很快,生成时间短而且安全性更高,rsa则加密解密稍慢,生成时间长,安全性没有ed25519高,只是rsa基本都是默认,所以用的人更多,但是建议转换为ed25519,网站软件现在基本都支持了. 但也是有漏洞,你可以参阅 Ed25519/EdDSA 签名算法导致的密钥泄露的漏洞研究
下来让你设置密钥密码,可以直接回车为空就行
生成完成


cd ~/.ssh
ls -Al
4.拷贝公钥至公司GitLab
方式一终端
将公钥拷贝至剪贴板
pbcopy < ~/.ssh/id_ed25519.pub
pbcopy, pbpaste - provide copying and pasting to the pasteboard (the Clipboard) from command line
方式二 - 文本编辑器或者VS打开拷贝.pub中的字符串
回到GitLab ssh配置页面,直接粘贴 标题默认是以你的邮箱作为标题,你可以自行决定修改与否,只是用来显示以示区分


5.修改ssh配置文件
编辑.ssh下的config文件的内容:
Host 192.168.14.155
HostName 192.168.14.155
User example@foxmail.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519
将example@foxmail.com改为你的gitlab账户邮箱。
还有更省事的方式,直接终端里ssh-add一下
ssh-add ~/.ssh/id_ed25519
这样就可以通过ssh的方式git clone git@...的东西了
