git免密操作的三种方式

git是日常工作中经常用到的,无论是日常代码提交还是服务运维pull和push都是不可避免的,关于免密操作我们并不陌生,在idea这样的IDE环境中人性化工具会帮助我们记住密码,在命令行中我们经常使用ssh秘钥进行免密操作。
本文则着重记录ssh免密外两种不常用的git免密配置。

  • ssh免密
  • credential-helper免密
  • https-url免密

ssh免密

ssh免密是最经常用的,也是相对安全的一种,这种方式是通过将用户ssh秘钥交给git托管服务来达到校验目的的。
若本地没有ssh秘钥则需要先生成。

生成秘钥

本地秘钥位置一般在/home/youruser/.ssh/id-rsa.pub
Mac环境则是在/Users/youruser/.ssh/id-rsa.pub
若没有则通过下面的命令生成秘钥

ssh-keygen -t rsa -C "NightFarmer@163.com"
# 一路回车

生成后将秘钥文件id-rsa.pub中的内容拷出来备用

配置秘钥

在github的setting页面,依照下图创建sshkey

测试秘钥

配置完成后,测试ssh秘钥是否生效
GitHub

ssh -T git@github.com

码云

ssh -T git@gitee.com

若返回如下类型的消息,则代表秘钥生效并成功访问到了git托管服务,不同的托管服务可能返回的信息稍有不同。

Hi NightFarmer! You've successfully authenticated,...

credential-helper免密

这种免密方式是将对应git托管服务的账号和密码写入配置文件中,并告诉git在需要的时候使用。 首先在用户目录下创建配置文件.git-credentials 并在文件中写入对配置信息

http://用户名:密码@github.com # GitHub
http://用户名:密码@gitee.com # 码云

接着使用git命令进行全局配置

git config --global credential.helper store

生效后在用户目录下的.gitconfig中会出现新增的配置信息

...
[credential]
    helper = store

或者手动在.gitconfig文件中加入这个配置
完成配置后即可实现免密操作。

https-url免密

这种方式是最方便直接的一种免密方式,需要在https的链接上做手脚,但安全性也相对差一些。
比如我们常规用的https的git链接是如下格式的

https://github.com/NightFarmer/xxxx.git

要实现免密,我们只需要把这个链接改成如下格式即可

https://账号:密码@github.com/NightFarmer/xxxx.git

重新clone或者修改远程地址即可生效

git remote set-url origin 新地址

这种方式是将账号和密码用明文拼接到url中的,所以使用git remote -v命令就能看得到,所以这种方式建议只在本地使用,服务运维时则建议使用ssh方式。

文章目录
,