keyadd 命令

用途

keyadd 从源密钥库中检索对象并将它们添加到目的密钥库上。

语法

keyadd [-S servicename] -l label -s source_keystore [-d destination_keystore] [ username]

描述

keyadd 命令从源密钥库中检索有标号命名的对象并将它们添加到目的密钥库。 在一个密钥库中,用户可以有专用密钥,公用密钥和使用相同标号存储的证书。 不管对象类型如何,所有于标号匹配的对象将被复制。 如果有相同标号的一个对象已经存在于目的密钥库中,命令就返回一个错误。 这就强制要求用户显式地删除一个现有的对象,而不是盲目地破坏它。

注意: 一般情况下,无法恢复已破坏的对象。

-S 选项指定了当添加来自密钥库的对象时,使用哪个终端实体(end-entity)服务和库。 在 /usr/lib/security/pki/ca.cfg 中定义可用的服务。 当没有 -S 时调用,keydelete 就使用缺省服务,它是 local。 指定一个在 /usr/lib/security/ pki/ca.cfg 文件没有相应条目的服务名,这是错误的。

必须指定 -l 选项。 这个标号唯一标识了在密钥库中将要被复制的对象。 也必须指定-s 选项。

如果未提供 -d 选项,那么用户名的缺省密钥库文件将用作目标密钥库。用户的缺省密钥库位置为 /var/pki/security/keys/<用户名>

如果 username 没有给出,就使用当前的用户的用户名。 将提示用户输入目的密钥库和源密钥库的密码。 如果目的密钥库不存在,就创建一个并要求用户重新输入目的密钥库的密码来确认。

标志

描述
-S 服务名称 指定用哪个服务模块。
-l 标签 指定与要添加的密钥相关的标号。
-s source_keystore 指定源密钥库的位置。
-d 目标密钥库 指定目的密钥库的位置。

退出状态

描述
0 命令成功完成。
>0 发生错误。

安全性

这是一个 setuid 命令。 为列示密钥库的内容,用户必须知道专用的密钥库的密码。

允许属于组安全性的 Root 和调用者列出任何人的密钥库。 然而,只有他们知道密钥库的密码,才能够成功完成此操作。 非特权用户仅被允许列示他自己的密钥库。

审计

该命令记录下列事件信息:

KEY_Add <用户名>

示例

将一个标为 label 的密钥库对象从 /var/pki/security/keys/src.keystore 复制到 /var/pki/security/keys/dst.keystore ,请输入:
$ keyadd -s /var/pki/security/keys/src.keystore -d /var/pki/ 
security/keys/dst.keystore -l label pkitest

文件

/usr/lib/security/pki/policy.cfg

/usr/lib/security/pki/ca.cfg