linux+git登陆,图解如何在Linux上配置git自动登陆验证

记录一下配置git操做远程仓库时的自动验证,效果以下图:git

c15d8adc5bb8216fd7abd51785524b6d.png

本文介绍的是Linux下的配置。Windows上默认已经启用凭证存储和自动验证(依靠wincred实现,之后会使用GCM-Core)。github

准备工做

首先须要Linux系统上安装了dbus或者是gnome-keyring(依赖于dbus),若是可能的话须要安装libsecret,这是一个更现代的用于凭证管理的库。由于咱们须要借助dbus的service才行实现凭证存储:安全

# Ubuntu

sudo apt-get install libsecret-1-0 libsecret-1-dev gnome-keyring

# Arch Linux

sudo pacman -S libsecret gnome-keyring

其次你须要git 2.11+,一次make,pkg-config,gcc等编译工具,能够用下面的命令安装:bash

# Ubuntu

sudo apt install build-essential git pkg-config

# Arch Linux

sudo pacman pkg-config make gcc g++ git

最后,咱们须要获取我的的ACCESS TOKEN,由于GitHub在2021年末将会废除git操做时的密码验证,全部密码验证须要转换为TOKEN验证,密码只能用于帐户自己的登陆。工具

首先咱们要进设置界面,先打开github.com,而后跟着图里的步骤走:测试

87bc818fd986b630e3f6a4853c562c62.png

而后点红圈里的开发者设置:ui

4ad44eb6752d0f4e0cc1640686d7c1dd.png

你会看到这样的界面,上面列出了已经建立的token和建立/删除按钮:加密

92d55fb4abcfb2350d7aeda8f01b39af.png

下面是如何建立token,这里建议只勾选你须要的权限,好比提交commit等,权限不是越多越好:3d

72cb010a0e6f51cb1b639aa97b7024b7.png

90e1ba56bbe9138db3ec9f16f7b4de82.png

建立完成后会把token明文显示给你,必定要妥善保存,由于页面一旦关闭/刷新这串token就只有你一我的知道了:code

af877cc5bf647a0e4f771a1790738756.png

一旦token遗失或者没用了,就要及时删除,好比我刚刚为了演示而建立的token演示结束就没用了,因此要删除:

f553a986189c7dd824677d7755294ca4.png

54e6aa8d2bf51439cd76ff48c488b755.png

有了access token,下面就能够配置自动登陆验证了。

什么是凭证存储

就是字面意思,用某种方式把密码或者token存储起来,在须要的时候能够获取这些被存储的凭证。

git内置了对凭证存储的支持,经过配置进行:

git config --global credential.helper xxx

若是没有设置那么默认不进行存储,这个xxx默认有2个选项:

store 把凭证用明文存储在$HOME目录下,为了安全建议不要设置它

cache 把凭证存储在内存里15分钟,15分钟后删除

除此以外还支持符合接口规范的第三方应用程序:

git config --global credential.helper your-tool

git config --global credential.helper /path/to/your-tool

对于第一种形式,git会去$PATH里找名字叫git-credential-your-tool的程序,在设置的时候不用写出前缀。第二种会直接调用绝对路径指定的程序。

选用第三方工具是理由是安全:这些工具一般会加密你的凭证,而且存储在一个不容易致使恶意访问的地方,另外还能够和系统功能集成。

那么从哪找这么好的第三方管理程序呢?别着急,git自带了。

在Ubuntu系统上,git把这些程序的源码存储在:/usr/share/doc/git/contrib/credential/这里。在Arch Linux上则是/usr/share/git/credential:

7fc5b46202040b52580bc376052bd863.png

上图是Arch Linux上的状况,gnome-keyring和libsecret、netrc是Linux上能够使用的工具。

由于都是源码,因此咱们得先进行编译。

配置

咱们选择libsecret,由于gnome-keyring将来会被废弃。

采用下面的命令编译,以Ubuntu为例子:

cd /usr/share/doc/git/contrib/credential/libsecret

sudo make

# 若是目录所在的文件系统是ext4,xfs,btrfs,还能够用下面的命令禁止对程序的任何修改

sudo chattr +i git-credential-libsecret

你能够把该目录添加进$PATH,而后指定credential.helper:

echo '$PATH=$PATH:/usr/share/doc/git/contrib/credential/libsecret' >> ~/.bashrc

git config --global credential.helper libsecret

或者你不想修改$PATH,能够这样配置:

git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

这样就大功告成了。

运行

为了测试,咱们随便选择一个本身的项目,先clone到本地,而后作些修改后commit。

只有在修改远程仓库的时候才会进行凭证验证,好比push。一般的过程是这样的:

$ git push origin dev

Username for 'https://github.com': apocelipes

Password for 'https:/apocelipes@github.com':

虽然提示的文字仍然使用的密码,但输入的应该是咱们以前建立的access token。

验证经过后就会把变动push到origin,但配置自动验证后第一次仍然须要输入凭证,而后如今会是这样:

2a7eea6b68ce35910bbc566d5ba016cc.png

须要为你的密钥环配置一个单独的密码,你也能够选择用户的默认密码,配置完成后凭证就会被安全地存储了。

下次push将不会再验证用户名和凭证,效果和文章开头的图片里同样。

这样自动登陆认证就配置完成了。

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值