首页 > 其他分享 >VSCode Git 使用 GPG

VSCode Git 使用 GPG

时间:2023-01-17 16:06:45浏览次数:77  
标签:GPG VSCode gpg agent -- Git 密钥 key

1. GPG 安装

Linux 包管理器安装即可,Windows 可在如下链接下载。 下载链接: www.gnupg.org
Windows 下推荐:https://gpg4win.org/download.html

2. GPG 使用

# gpg --full-generate-key
gpg --gen-key # 生成密钥(公钥和私钥),按照流程提示进行
gpg --list-keys # 列出当前所有的密钥,检查刚才的密钥是否生成成功
# 列表的一个长字符串即<USER_ID_HASH>

可以通过--output来导出密钥到文件,--armor选项以ASCII码的格式导出。

# 导出
gpg --output <YOUR_KEY_FILE_NAME>-pub.key --armor --export <USER_ID_HASH>
gpg --output <YOUR_KEY_FILE_NAME>-sec.key --armor --export-secret-key <USER_ID_HASH>

# 导入
gpg --import <YOUR_KEY_FILE_NAME>-pub.key
gpg --allow-secret-key-import --import <YOUR_KEY_FILE_NAME>-sec.key

# 加密
gpg --encrypt -armor -r key-id filename

# 解密
gpg --output 新文件名 --decrypt 加密文件名

# 修改密钥
gpg --edit-key 标识名

# 删除密钥
gpg --delete-secret-keys 标识名

# 删除公钥
gpg --delete-keys 标识名

3. Git 启用 GPG

git config --global user.signingkey <USER_ID_HASH>
git config --global commit.gpgsign true

bash 环境将 export GPG_TTY=$(tty) 加入到 ~/.bash_profile

Windows 可能还要配置 GPG 程序路径:

git config --global gpg.program "D:\Program Files (x86)\GnuPG\bin\gpg.exe"

设置 gpg-agent.conf 延长 gpg 密钥缓存时间,内容设置为:

default-cache-ttl 86400
max-cache-ttl 604800
# wsl2 下生效,wsl 中请注释以下行
pinentry-program "/mnt/d/Program Files (x86)/Gpg4win/bin/pinentry.exe"

设置后可能需要通过运行以下命令重新启动 GPG 代理: gpg-connect-agent reloadagent /bye

其中Linux / macOS 路径为:~/.gnupg/gpg-agent.conf,Windows (使用 gpg --version 确认使用的路径),一般为:

%AppData%\gnupg\gpg-agent.conf
%userprofile%\.gnupg\gpg-agent.conf

Wsl 的 Linux 下可用方案为 ~/.bashrc 下弄 2 个函数,用于缓存密钥密码:

gpg-login() {
    export GPG_TTY=$TTY
    # 对 "test" 这个字符串进行 gpg 签名,这时候需要输密码。
    # 然后密码就会被缓存,下次就不用输密码了。
    # 重定向输出到 null,就不会显示到终端中。
    echo "test" | gpg --clearsign > /dev/null 2>&1
}

gpg-logout() {
    echo RELOADAGENT | gpg-connect-agent
}

VSCode 配置加上:

"git.enableCommitSigning": true,

4. Git 服务器添加公钥

将上面生成的公钥<YOUR_KEY_FILE_NAME>-pub.key内容添加至 Git 服务器。

参考资料: [1] https://blog.miniasp.com/post/2020/09/21/Keep-GnuPG-credentials-cached-for-entire-day [2] https://stackoverflow.com/questions/63440623/no-gpg-passphrase-prompt-in-visual-studio-code-on-windows-10-for-signed-git-comm

标签:GPG,VSCode,gpg,agent,--,Git,密钥,key
From: https://blog.51cto.com/ygqygq2/6017353

相关文章

  • 【转】Git 报错:TLS certificate verification has been disabled!
     使用Git时遇到报错:TLScertificateverificationhasbeendisabled!warning:-----------------SECURITYWARNING----------------warning:|TLScertificatev......
  • 【git】git常用命令
    1.初始化本地仓库可选,如果不指定,将使用当前目录gitinit<directory>2.添加文件到暂存区gitadd<file>添加当前目录中的所有文件:gitadd.3.提交更改gitcommi......
  • Vue3 (Vscode插件)
    前端开发的编辑器有很多种如DW,hubilder,WebStorm,sublime,vscode,等等。​​Vue3+vite+Ts+pinia+实战+源码+全栈_哔哩哔哩_bilibili​​ 视频教程随着VsCode开......
  • 【VSCode】vue文件保存时自动格式化
    用户目录下:AppData\Roaming\Code\User\settings.json1{2"workbench.colorTheme":"DefaultDark+",3"workbench.iconTheme":"vscode-icons",4"bracket......
  • Linux中安装Git 2.39.0
    1、依赖安装yuminstalldh-autoreconfcurl-develexpat-develgettext-developenssl-develperl-develzlib-develnss-y2、移除默认的gityumremovegit-y3......
  • GIT命令操作_一期
    (1)如何使用gitmerge方法合并master分支代码到自己分支gitcheckoutmaster#切换本地分支为mastergitpull#更新本地分支master代码为远程最新代码gitcheckout[......
  • VScode 的远程开发
    VScode登录服务器后进行编码和调试,VScode上的所有功能都可以使用,和在本地开发基本无区别。一、配置免密远程登录因为是要远程登录,那么需要通过使用ssh进行密钥对登录,......
  • Git命令使用
    文件夹关联git仓库首先初始化本地仓库gitinit将本地文件夹与远程关联gitremoteaddorigin代码仓库地址添加文件gitadd123.txt注释gitcommit-m"1231"将远......
  • Git常用命令
    Git常用命令基础操作gitstatus:查看文件状态gitadd:将文件的修改加入暂存区gitreset:将暂存区的文件取消暂存或者是切换到指定版本gitcommit:将暂存区的文件......
  • vscode嵌入式开发配置
    背景虽然vscode提供了许多嵌入式开发插件,但是质量参差不齐,所以本人大多是情况下依旧还是保留着:嵌入式IDE+VSCode并行的开发模式,VSCode纯粹作为代码编辑器。而VSCode只需要......