Pacman/Package signing (简体中文)

From ArchWiki
< Pacman
Revision as of 07:39, 5 December 2011 by Fengchao (talk | contribs) (Created page with "Category:简体中文 Category:Pacman development (简体中文) {{i18n|Pacman-key}} pacman-key 是 pacman 4 新加的工具。有了它,用户可以管理 pacman ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

pacman-key 是 pacman 4 新加的工具。有了它,用户可以管理 pacman 新签名系统的授信密钥。关于此问题的背景,请访问这个博客和 软件包签名提议 wiki 页面。

密钥和指纹概览

开发者可以用 PGP 密钥给他们的软件包唯一签名,保证软件包是他们生成,而不是来自伪装者。

指纹或者 keyid

  • 指纹是密钥的缩减版本,不需要全部密钥内容(有时非常长)就可以认证密钥。它是密钥的"名字" 。在 pacman 文档中它们被称为 keyids。
  • 指纹格式
    • "6645 B0A8 C700 5E78 DB1D 7864 F99F FE0F EAE9 99BD" 这样的指纹需要压缩为"6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD" (删除空格)
    • 密钥前的"0x"位是可选的,有没有都能正确工作。

Keyservers

  • PGP 密钥服务器保存密钥文件,用户可以根据指纹查找密钥。通过 --keyserver 选项指定。
  • hkp://pgp.mit.edu 是一个 Archlinux 开发者喜欢使用的密钥服务器。
  • 默认 keyserver 可以在 /etc/pacman.d/gnupg/gpg.conf 中修改。

设置

要完全禁用密钥检查,在/etc/pacman.conf中加入:

SigLevel     = Never

要设置 pacman-key gpg 密钥存储:

# pacman-key --init

SigLevel 有三个可选值:Required, 强制检查签名; Optional (default), 如果签名存在就检查,但会接受未签名软件包和数据库; Never, 不会进行任何签名检查。

添加密钥

pacman 在软件包中遇到未知密钥时,会询问用户是否添加。此外还可以通过自己下载 PGP 密钥文件并运行'pacman-key -a key-file' 安装,根据指纹从密钥服务器获取。最后一种方式最简单,将会在下面介绍。

  • 找到开发者密钥的指纹: 访问 开发者页面 并找到 PGP 密钥链接,链接文本就是指纹。
  • 运行命令 pacman-key -r <fingerprint> --keyserver <key server>. <key server> 使用 "hkp://pgp.mit.edu".
  • pacman-key -l 将会显示添加到密钥
  • 这将会加入密钥并将信任级别设置为"未知"。

密钥认证

要使用密钥,需要修改信任级别。

要本地认证:

# pacman-key --lsign-key <keyid>

也可以用 gpg tsign 命令或等价的 pacman-key --edit-key "<fingerprint>"tsign

此外,可以设置 pacman 信任所有密钥环中的密钥:将下面中的一行加入 /etc/pacman.conf

SigLevel     = Required TrustAll
SigLevel     = Optional TrustAll