个人工具

UbuntuManual:GnuPG

来自Ubuntu中文

跳转至: 导航, 搜索
序言 Ubuntu 基础 Ubuntu 系统安装提示 Ubuntu指南
发行版升级 Ubuntu 软件包管理 Ubuntu下的 Linux 内核 Ubuntu 小技巧
Ubuntu 系统微调 网络设置 编辑器 版本控制系统
编程 GnuPG Ubuntu 技术支持 附录

第 14 章 - GnuPG

参考资源:

  • gpg(1).
  • /usr/share/doc/gnupg/README.gz
  • GNU 隐私手册位于 /usr/share/doc/gnupg-doc/GNU_Privacy_Handbook/ (安装 gnupg-doc 软件包)

安装 GnuPG

# gpg --gen-key                   # 生成新的密钥
# gpg --gen-revoke my_user_ID     # 为 my_user_ID 生成吊销密钥
# host -l pgp.net | grep www|less # 查找 pgp keyservers

配置文件 $HOME/.gnupg/gpg.conf(或是先前的位置 $HOME/.gnupg/options)中一个完好的预设 keyserver 包含:

keyserver hkp://subkeys.pgp.net

必须注意不能创建2个以上的 sub-keys,如果这样做了,pgp.net 上的 keyservers 会废除(corrupt)你的密钥。使用新版的 gnupg(>1.2.1-2)来处理这些废除的 subkeys。参阅 http://fortytwo.ch/gpg/subkeys。

使用 GnuPG

文件处理:

$ gpg  [options]  command  [args]
$ gpg {--armor|-a} {--sign|-s} file # 对 file 签名,并保存在文本文件 file.asc 中
$ gpg --clearsign file              # clear-sign 信息
$ gpg --clearsign --not-dash-escaped patchfile  # clear-sign patchfile
$ gpg --verify file                 # 校验 clear-signed file
$ gpg -o file.sig {-b|--detach-sig} file # create detached signature
$ gpg --verify file.sig file        # 用 file.sig 校验 file
$ gpg -o crypt_file {--recipient|-r} name {--encrypt|-e} file 
# public-key encryption intended for name
$ gpg -o crypt_file {--symmetric|-c} file # 对称加密
$ gpg -o file --decrypt crypt_file  # 解密

管理 GnuPG

密钥管理:

$ gpg --edit-key user_ID               # "help" 获得帮助,交互式
$ gpg -o file --exports                # 将所有密钥导出到 file 
$ gpg --imports file                   # 从 file 导出所有密钥
$ gpg --send-keys user_ID              # 将 user_ID 的密钥发送给 keyserver
$ gpg --recv-keys user_ID              # 从 keyserver 接收 user_ID 的密钥
$ gpg --list-keys user_ID              # 列出 user_ID 的密钥
$ gpg --list-sigs user_ID              # 列出 user_ID 的 sig
$ gpg --check-sigs user_ID             # 检查 user_ID 的 sig
$ gpg --fingerprint user_ID            # 检查 user_ID 的指纹
$ gpg --list-sigs | grep '^sig' | grep '[User id not found]' \
| awk '{print $2}' | sort -u | xargs gpg --recv-keys # 获取未知的密钥
# 更新所有未知 sigs.
$ gpg --refresh-keys                   #更新本地 keyring

Trust 代码:

-         没指定任何 ownertrust / 还没进行计算。
e         Trust 计算失败。
q         没有足够的信息进行计算。
n         该密钥不可信。
m         最低限度的可信(Marginally trusted)。
f         完全可信(Fully trusted)。
u         绝对可信(Ultimately trusted)。

下面的操作将我的 key “A8061F32” 上载到公共 keyserver hkp://subkeys.pgp.net:

$ gpg --keyserver hkp://subkeys.pgp.net --send-keys A8061F32 

在应用程序中使用 GnuPG

在 Mutt 中使用 GnuPG

如果 GnuPG 程序速度很慢,可以将以下内容加入 ~/.muttrc 以阻止它自动启动,并使其能在 index 菜单下按‘S’手动启动。

macro index S ":toggle pgp_verify_sig\n"
set pgp_verify_sig=no

在 Vim 中使用 GnuPG

将 examples subdirectory 下的 _vimrc 文件的内容加入到 ~/.vimrc 就可以运行 GnuPG了。