通过ssh key来简化git提交流程即免密码提交git代码

默认情况下,我们在本地代码库中每一次提交,都需要输入git的用户名和密码,感觉非常麻烦,那有没有可以不用每次输入用户名和密码的方法呢,答案是有的,那么,下面请跟随我的脚本来简化这一流程。

一、本地通过ssh-keygen工具生成密钥和公钥

1.安装openssl

针对Redhat/CentOS系统

  1. yum install openssl openssl-devel

针对debian/ubuntu系统:

  1. sudo apt-get install openssl libssl-dev
2.通过ssh-keygen 命令来生成密钥和公钥
  1. ssh-keygen -t rsa -C "ishixinke@qq.com"
  • -t参数表示使用的加密算法,如rsa/dsa等
  • -C 表示备注信息,一般放自己的邮箱名
  • -f 指定保存密钥文件的名称(包括路径)

注:

  • 输入以上命令时,会提示输入密钥文件的存放地址,默认为~/.ssh/id_rsa
  • 另外会提示输入密码,建议不要密码,不然每次使用时还要输入密码

二、在web代码管理控制台添加ssh key

1.在gitlab平台添加ssh key
(1)登录gitlab后,点击顶部的个人头像,再选择”Settings”子菜单

gitlab上添加ssh key

(2)进入个人页面,在左侧菜单中选择”SSH Keys”

gitlab选择ssh key菜单

(3)填写公钥的内容并保存

打开第一步生成的公钥文件,默认为id_rsa.pub,复制其内容,并将内容填写到key对应的文本框中:

打开生成的公钥文件

  • key表示公钥内容
  • title 公钥的一个说明
2.在github平台添加ssh key
(1)登录github,点击个人头像,选择”settings”

github设置

(2)进入设置页面,点击左侧菜单“SSH and GPG keys”

github设置页

(3)将复制的公钥内容填入到相应的文本框中

复制公钥内容

三、配置ssh时使用公钥登录

1.打开个人文件夹下.ssh子目录,新建config文件(如果存在,打开即可)

输入以下内容:

  1. Host git.domain.com
  2. HostName git.domain.com
  3. User shixinke
  4. PreferredAuthentications publickey
  5. IdentityFile ~/.ssh/gitlab_rsa

注:

  • Host/HostName:为git库的地址
  • User:为自己的git库名称
  • IdentityFile:私钥文件地址

四、在IDE中配置git库地址

1.打开IDE中的git配置项:

2.设置IDE中的git地址:

注:这里的git地址是ssh地址,不是http地址,如git@git.xx.com这种