linux 中 git 默认并没有集成密钥权限管理模块,需要自己动手,这里选择 gcm 进行 access token 的密钥管理。

工具项目仓库:https://github.com/GitCredentialManager/git-credential-manager

安装文档:https://github.com/GitCredentialManager/git-credential-manager/blob/release/docs/install.md

前提是需要有 git

sudo apt install git

从 release 页中下载 .deb 包 https://github.com/GitCredentialManager/git-credential-manager/releases/tag/v2.0.877

使用 apt 安装 .deb 包(统一管理软件,避免 apt 未知依赖的安装)

sudo apt install <path_of_package>

(建议进入文件路径启动终端,使用 sudo apt install ./<package> 安装)

运行配置命令

git-credential-manager-core configure

(你可能发现这里和官方不同,没关系,照着运行,官方文档修改不及时,有别的开发者提 PR 了。)

密钥的保管使用 gpg

git config --global credential.credentialStore gpg

检测配置,执行 git config -l ,输出需要如下(可以有其他配置,但是不要有 = 为空的选项)

这时候可能还是会存在配置问题,没关系,直接修改 git 配置文件,这个文件的路径是 ~/.gitconfig

我们再去设置 gpg (如果你之前没有配置过的话)

运行 gpg --generate-key

得到类似如下的结果,注意 pub 后的一串字符(公钥)7865BA...

...GnuPG needs to construct a user ID to identify your key.
Real name: MollyEmail address: molly@example.comYou selected this USER-ID:"Molly molly@example.com"
Change (N)ame, (E)mail, or (O)kay/(Q)uit? O...pub   rsa3072 2022-03-31 [SC] [expires: 2024-03-30]7865BA9185AFA2C26C5B505669FC4F36530097C2uid                      Molly molly@example.comsub   rsa3072 2022-03-31 [E] [expires: 2024-03-30]

执行 pass init 7865BA9185AFA2C26C5B505669FC4F36530097C2

(如果 pass 不存在执行 sudo apt install pass 安装)

这个过程中会让你输入密码,请一定记住,之后使用 gpg 的时候都会需要这个密码(在使用 git 的时候 gcm 可以记住这个密码)。