社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
公司代码在托管在Gitlab,没有设置SSH key之前,每次拉或者推代码,都要求输入账号密码,挺麻烦的,设置了SSH Key后就不用输密码啦。网上很多教程,感觉说的都不完整,自己根据真实操作整理并添加缺少的步骤。
git是分布式的代码管理工具,远程的代码管理是基于ssh的,所以要使用远程的git则需要ssh的配置。简单的说,Git - 版本控制工具;Github是一个网站,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等;GitLab是基于Git的项目管理软件。
首先,使用代码管理工具把本地的代码上传到服务器时需要加密处理,加密传输的算法有很多种,git可使用rsa,rsa要解决的一个核心问题是,如何使用一对密钥,使其中一个可以用来加密,而另外一个可以用来解密。这这对密钥就是public key(公钥)和private key(私钥)。
其中,公钥就是那个用来加密的密钥,这也就是为什么你在本机生成了公钥之后,要上传到github的原因。从github发回来的,用那公钥加密过的数据,可以用你本地的私钥来还原。如果你的key丢失了,不管是公钥还是私钥,丢失一个都不能用了,解决方法也很简单,删除原有的key,重新再生成一次,然后在GitLab里再设置一次就行。
在个人电脑生成ssh密钥后,会同时生成一个公开密钥和一个私有密钥,默认情况下在用户主目录下的.ssh目录中,密钥为id_rsa,公开密钥为id_rsa.pub。
密钥和公开密钥是共同使用的,协同开发中,一般会将公钥配置在服务器中,这样方便经常登录,也不需要输入密码,这是现在集群和各种云平台常用的登录方式,密钥在本地不被泄漏就非常安全。
ls -al ~/.ssh
我已经生成过,所以会出现红框标记的两条信息,没有生成过的是不会有这两条的。
没有生成过的,接着往下看。生成过的,就从文章后面pbcopy < ~/.ssh/id_rsa.pub
开始看起。
ssh-keygen -t rsa -C "your_email@example.com"
这个邮箱就是常用邮箱,不一定要设置成GitLab相关的。
默认会在相应路径下(/your_home_path)生成id_rsa和id_rsa.pub两个文件,此时终端会显示:
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home_path/.ssh/id_rsa):
连续回车即可,也可能会让你输入密码,不用输入直接回车,否则即使通过SSH连接,每次拉or推代码还是要输这个设置的密码。(如果你设置了密码,还会让你重复输入确认,你以后后悔的话,也还是有后悔药的,看文章最后)。
此时再输入命令:
ls -al ~/.ssh
就会出现id_rsa.pub 和 id_dsa.pub两个文件,然后再输入以下命令
pbcopy < ~/.ssh/id_rsa.pub
这样公钥就复制下来了,打开你的GitLab,点击右上角头像->Settings->左侧SSH Keys,在Key的文本框粘贴你刚才复制的内容后,再点击Add Key就可以了。
git remote -v
若是http(s)://XXXX/XXX.git
形式,则说明目前配置的连接方式为http(s)
若是git@XXXX/XXX.git
形式,则说明目前配置的连接方式为ssh
如果已经是ssh的连接方式就不用管了,否则修改为ssh连接的地址即可。这个地址在GitLab你的项目的首页就可以看到,不再赘述。
git remote set-url origin 你想要设置的新地址
再试试拉代码,是不是就不用输账号密码啦~
执行这个命令,输入之前设置的邮箱就可以
ssh-keygen -t rsa -C "邮箱"
密码全部回车,后面的步骤是一样的,如果你已经把之前有密码的公钥添加到Gitlab了,删掉添加新的就可以了。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!