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>。
如果 username 没有给出,就使用当前的用户的用户名。将提示用户输入目的密钥库和源密钥库的密码。如果目的密钥库不存在, 就创建一个并要求用户重新输入目的密钥库的密码来确认。
-S servicename | 指定所要使用的服务模块。 |
-l label | 指定与要添加的密钥相关的标号。 |
-s source_keystore | 指定源密钥库的位置。 |
-d destination_keystore | 指定目的密钥库的位置。 |
0 | 命令成功完成。 |
>0 | 发生一个错误。 |
这是一个 setuid 命令。为了列出密钥库的内容用户必须知道专用的密钥库的密码。
允许属于组 security 的 root 和调用者列出任何人的密钥库。然而,只有他们知道密钥库的密码,才能够成功完成此操作。非特权用户仅允许列出他所拥有的密钥库。
此命令记录了下列事件信息:
KEY_Add <username>
把一个标为 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
certadd, certcreate, certdelete, certget, certlink, certlist, certrevoke, certverify, keydelete, keylist, keypasswd 和 mksecpki 命令。