下一页 上一页 目录

6. PGP 和 Mutt 集成

在发送外发消息时要执行的操作(签名、加密或两者都执行)是在按下“y”发送消息之前,在通过“p”选项可见的选项菜单中选择的。 一旦您选择了要执行的操作,只有屏幕上显示的消息头中的PGP行会更改,但是直到您使用“y”发送消息,系统才会要求您插入口令短语以激活消息签名,或者在公钥环中找不到接收者的情况下,系统也不会要求您插入用于加密的公钥。

注意: 如果在请求时口令短语输入错误,Mutt 似乎“卡住”了,但事实并非如此,它正在等待重新输入。 要执行此操作,请按下 <Enter> 键,然后使用 <Ctrl>F 从内存中删除口令短语。 接下来,我们使用(“y”)重复消息发送并重新输入口令短语。

通过此过程,Mutt 将使用 PGP/MIME 发送消息,并且在要发送的文件列表中将出现一个额外的文件(如果我们仅选择签名)。或者,它将加密完整消息(所有 MIME 部分),并且只会留下两个 MIME 部分,第一个是 PGP/MIME 版本,第二个是加密的消息(其中包含所有 MIME 部分)并已签名(如果我们选择这样做)。

注意: 由于某些原因,如果接收方邮件用户代理无法使用 MIME,我们可能需要将签名包含在消息正文中。 请参阅关于 application/pgp 的章节,其中包含 PGP5GnuPG 的信息。

Mutt 将尝试自动验证使用 PGP/MIME 的传入消息的签名或解密。 请参阅 Procmail 笔记和技巧 章节,其中评论了如何自动更改未正确设置 MIME 类型的传入消息的 MIME 类型。

6.1 可选配置文件

在接下来的章节中,您可以找到对 Mutt 配置文件的修改,以便轻松使用 PGP2PGP5GnuPG

为此,需要创建一个新的配置文件,我们将其命名为 .gnupgp.mutt(这是我们的名称,您可以将其命名为任何其他名称,并在主配置文件 ~/.muttrc 中设置此文件的名称)。

这可以通过在 ~/.muttrc 文件的末尾行中包含配置文件 .gnupgp.mutt 的完整路径(其位置)来完成。 我们放置此文件和其他可选配置文件的目录可以是任何位置,只要我们具有正确的权限(在上一节中,我们将其包含在 ~/Mail/ 目录中),或者我们主目录中的任何其他目录,可以使用任何名称

~$ mkdir mutt.varios

在其中,我们复制(或创建)可选配置文件 .gnupgp.mutt,然后我们在 .muttrc 文件中使用 source 命令设置此文件的来源,如下所示

source ~/mutt.varios/.gnupgp.mutt

现在,Mutt 将接受 .gnupgp.mutt 中的配置变量,就像它们直接在 .muttrc 中一样。

这种方法是避免拥有非常大、未排序的配置文件的良好方法,并且可以用于在其他单独的文件中设置任何其他组的配置变量。 例如,与之前一样,如果我们在 Mutt 中使用 vim 作为默认编辑器,我们可以告诉 .muttrc 使用不同的配置文件 .vimrc,该文件是我们在从命令行使用 vim 时使用的。 首先,将 ~/.vimrc 复制到我们的可选配置文件目录 ~/mutt.varios/ 并将其设置为其他名称(例如 vim.mutt

$ cd /home/user ~$ cp .vimrc mutt.varios/vim.mutt

接下来,更改我们希望在 vim 作为 Mutt 编辑器时有所不同的配置变量,最后修改 .muttrc 以反映此更改

set editor="/usr/bin/vim -u ~/mutt.varios/vim.mutt"

使用最后一行,我们将 Mutt 设置为使用外部编辑器 Vim,并带有需要的配置选项。

6.2 通用配置变量

有一些变量我们将与 Mutt 的三个公钥加密程序一起全局使用。 这些变量是布尔值,可以 set(激活)或 unset(停用)。

在配置文件(~/.muttrc,或 ~/mutt.varios/.gnupgp.mutt,或您使用的任何文件)中,符号(#)是注释,将被忽略。 因此,从现在开始,我们将使用它来注释每个变量

unset pgp_autosign

# 如果设置了此变量,Mutt 将询问是否签名所有
# 外发消息。 (1)

unset pgp_autoencrypt

# 如果设置了此变量,Mutt 将询问是否加密所有
# 外发消息。 (1)

set pgp_encryptself

# 保存我们想要加密的所有已发送消息的加密副本
# (需要通用配置变量 set copy=yes)。

set pgp_replysign

# 当您回复已签名的消息时,回复消息也将被
# 签名。

set pgp_replyencrypt

# 当您回复加密的消息时,回复消息
# 也将被加密。

set pgp_verify_sig=yes

# 您是否要自动验证传入的已签名消息?
# 当然!

set pgp_timeout=<n>

# 在输入口令短语 <n> 秒后,从内存缓存中删除口令短语
# 。 (2)

set pgp_sign_as="0xABC123D4"

# 您要使用哪个密钥来签名外发消息?
# 注意: 可以将其设置为用户 ID,但是
# 如果您使用不同的密钥拥有相同的用户 ID,这可能会造成混淆。

set pgp_strict_enc

# 当 PGP 需要时,使用 “quoted-printable”。

unset pgp_long_ids

# 不要使用 64 位密钥 ID,使用 32 位密钥 ID。

set pgp_sign_micalg=<some>

# 消息完整性检查算法,其中
# <some> 是以下内容之一: (3)

在接下来的三个章节中,将解释每个 PGP 版本的配置变量。 第四节将解释如果您使用多个 PGP 版本,如何修改变量。

(1) 由于 Mutt 要求您每次想要签名或在想要加密时选择收据时都输入口令,因此设置此变量可能不方便。 您可能想要取消设置此变量。 对于加密消息尤其如此,因为您没有消息收据的所有公钥。

(2) 根据我们签名或解密的消息数量,我们可能希望在缓存中保留口令短语的时间或长或短。 此选项可避免您在每次签名新消息或解密传入消息时都输入口令短语。 警告: 将口令短语保存在缓存中是不安全的,尤其是在网络连接的系统中。

(3) 这仅在使用我们用于签名的密钥时才是必要的。 当从撰写菜单中选择密钥时,Mutt 将计算算法。

6.3 PGP2 配置变量

要将 PGP2 与 Mutt-i 一起使用,您需要将以下行添加到 ~/mutt.varios/.gnupgp.mutt 文件中

set pgp_default_version=pgp2
set pgp_key_version=default
set pgp_receive_version=default
set pgp_send_version=default
set pgp_sign_micalg=pgp-md5
set pgp_v2=/usr/bin/pgp
set pgp_v2_pubring=~/.pgp/pubring.pgp
set pgp_v2_secring=~/.pgp/secring.pgp

如您所知,~/.pgp/pubring.pgpsecring.pgp 文件必须存在。 有关 PGP2 的更多信息,请使用 man pgp 命令。

6.4 PGP5 配置变量

要将 PGP5 与 Mutt-i 一起使用,您需要将以下行添加到 ~/mutt.varios/.gnupgp.mutt 文件中

set pgp_default_version=pgp5
set pgp_key_version=default
set pgp_receive_version=default
set pgp_send_version=default
set pgp_sign_micalg=pgp-sha1
set pgp_v5=/usr/bin/pgp
set pgp_v5_pubring=~/.pgp/pubring.pkr
set pgp_v5_secring=~/.pgp/secring.skr

如您所知,~/.pgp/pubring.pkrsecring.pkr 文件必须存在。 有关 PGP 5 的更多信息,请使用 man pgp5 命令。

6.5 GnuPG 配置变量

要将 GnuPGMutt-i 一起使用,您需要将以下行添加到 ~/mutt.varios/.gnupgp.mutt 文件中

set pgp_default_version=gpg
set pgp_key_version=default
set pgp_receive_version=default
set pgp_send_version=default
set pgp_sign_micalg=pgp-sha1
set pgp_gpg=/usr/bin/gpg
set pgp_gpg_pubring=~/.gnupg/pubring.gpg
set pgp_gpg_secring=~/.gnupg/secring.gpg

如您所知,~/.gnupg/pubring.gpgsecring.gpg 文件必须存在。 有关 GnuPG 的更多信息,请使用 man gpg.gnupgman gpgmman gpg 命令。

6.6 混合配置变量

如果您想使用多个 PGP 软件,您需要修改一些我们之前注释的变量。 实际上,这只是为了删除冗余的版本变量。

例如,如果您想使用 GnuPG 作为默认签名工具,则 Mutt 中所有使用 GnuPG/PGP 的菜单命令都将调用此程序来执行签名、解密、加密、验证等操作
为此,您必须 一次 设置配置变量 $set_pgp_default,因此

set pgp_default_version=gpg

现在,要使用所有三个程序,~/mutt.varios/.gnupgp.mutt 文件可以像这样

set pgp_default_version=gpg     # default version to use

set pgp_key_version=default     # default key to use
                                # in this case, gnupg defines it

set pgp_receive_version=default # default version to decrypt will be the default
set pgp_send_version=default    # version defined in the first line (gpg)

set pgp_gpg=/usr/bin/gpg        # where to find the GnuPG binary
set pgp_gpg_pubring=~/.gnupg/pubring.gpg        # public key file to GnuPG
set pgp_gpg_secring=~/.gnupg/secring.gpg        # secret key file to GnuPG

set pgp_v2=/usr/bin/pgp         # where to find the PGP2 binary
set pgp_v2_pubring=~/.pgp/pubring.pgp           # public key file to PGP2
set pgp_v2_secring=~/.pgp/secring.pgp           # secret key file to PGP2

set pgp_v5=/usr/bin/pgp         # where to find the PGP5 binary
set pgp_v5_pubring=~/.pgp/pubring.pkr           # public key file to PGP5
set pgp_v5_secring=~/.pgp/secring.skr           # secret key file to PGP5


下一页 上一页 目录