当我们从github或者gitlab上clone项目或者参与项目时,需要证明我们的身份。github、gitlab支持使用SSH协议进行免密登录,而SSH协议采用了RSA算法保证了登录的安全性。我们要做的就是在本地生成一对RSA的密钥,并且将其中公钥暴露给远程主机。在登录时,远程主机会向我们发送一段随机字符串,我们用自己的私钥加密后再发回去,远程主机用会用之前储存的公钥进行解密,如果匹配成功,则允许登录。
过程
- 首先你需要在github上或者gitlab上有一个自己的账户
- 打开git bash,输入命令ls -al ~/.ssh。检查是否显示有id_rsa.pub或者id_dsa.pub存在,如果存在请直接跳至第4步。
- 在git bash中键入ssh-keygen -t rsa -C "your_email@example.com",注意将这里的邮箱地址替换成你自己的邮箱地址。之后一直按回车就可以了。在这里可以看到id_rsa和id_rsa.pub文件已经生成。并且生成的路径也已显示。
- 用记事本之类的软件打开id_rsa.pub文件,并且复制全部内容。这里记录的是公钥信息。
- 在你的gitlab或者github的账户,打开SSH key标签。然后选择Add SSH key按钮,将刚刚复制的内容粘贴进去即可,然后点击add key。
注意:当登录成功后没看见项目 说明项目权限没开