多个SSH配置

254 阅读3分钟

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

man ssh

终端可以查看详细的手册,大概1000行。懒得看跳过吧。用到再去查。

man ssh

配置

1.进入设置页面

gitlab ssh

2.点击SSH密钥

gitlab ssh key

3.生成ssh公钥私钥

GitLab有教程,你也可以看。

下面进入正题

打开终端

⌘+空格 输入终端或者terminal

输入

ssh-keygen -t ed25519 -C "email@example.com"

email@example.com部分改为你的gitlab账号邮箱

默认会存储在当前用户目录下的.ssh文件夹

关于ed25519

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 签名算法导致的密钥泄露的漏洞研究

下来让你设置密钥密码,可以直接回车为空就行

生成完成

这时候打开.ssh文件夹你就可以看到公钥私钥对了

或者直接在终端中查看

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配置页面,直接粘贴 标题默认是以你的邮箱作为标题,你可以自行决定修改与否,只是用来显示以示区分

然后点击添加,即可完成公钥在项目的配置。

正常情况下,到此已经可以通过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@...的东西了

延伸阅读

Git管理多个SSH密钥,Git多帐号配置