20.16.8. 智能卡设备
可以通过智能卡元素向客户机虚拟机提供虚拟
智能卡
设备。主机机器上的 USB 智能卡读取器设备无法在具有简单设备透传的 guest 上使用,因为它不能同时提供给主机和客户机,并在从客户机中删除主机计算机时锁定主机计算机。因此,一些虚拟机监控程序提供特殊的虚拟设备,它可向客户机虚拟机提供智能卡接口,具有几种模式来描述如何从主机或第三方智能卡供应商创建的频道获取凭证。要通过字符设备设置 USB 设备重定向的参数,请编辑域 XML 的以下部分:
图 20.34. devices - 智能卡设备
... <devices> <smartcard mode='host'/> <smartcard mode='host-certificates'> <certificate>cert1</certificate> <certificate>cert2</certificate> <certificate>cert3</certificate> <database>/etc/pki/nssdb/</database> </smartcard> <smartcard mode='passthrough' type='tcp'> <source mode='bind' host='127.0.0.1' service='2001'/> <protocol type='raw'/> <address type='ccid' controller='0' slot='0'/> </smartcard> <smartcard mode='passthrough' type='spicevmc'/> </devices> ...
智能卡
元素具有强制属性 模式
。支持以下模式;在各个模式下,客户机虚拟机在其 USB 总线上看到设备,其行为类似于物理 USB CCID(Chip/Smart Card Interface Device)卡。
模式属性如下:
参数 | 描述 |
---|---|
mode='host' | 在这个模式中,管理程序通过 NSS 将客户机虚拟机的所有直接访问请求转发到主机物理机器的智能卡。不需要其他属性或子元素。请参阅以下关于使用可选 地址 子元素的信息。 |
mode='host-certificates' | 这个模式允许您提供位于主机物理机器的数据库中的三个 NSS 证书名称,而不需要插入到主机物理机器中的智能卡。这些证书可以使用命令 certutil -d /etc/pki/nssdb -x -t CT,CT,CT -S -s CN=cert1 -n cert1 ,并且生成的三个证书名称必须作为三个 证书子元素 的内容提供。额外的子元素 数据库 可以指定到备用目录的绝对路径(在创建证书时与 certutil 命令的 -d 选项匹配);如果不存在,则默认为 /etc/pki/nssdb 。 |
mode='passthrough' | 此模式允许您通过二级字符设备将所有请求传输到第三方提供程序(而后者又与智能卡或使用三个证书文件)进行传输,而不是让虚拟机监控程序直接与主机物理计算机通信。在这个模式中,需要一个额外的属性 类型 ,与受支持的串行设备类型之一匹配,以描述隧道的主机物理机器侧; type='tcp' 或 type='spicevmc' (它使用 SPICE 图形设备的智能卡频道)。此外,可以根据给定类型需要其他子元素(如 源 ),但不需要 目标 子元素(因为字符设备的使用者是虚拟机监控程序本身,而不是虚拟客户机中可见的设备)。 |
每个模式支持可选的子元素
地址
,它微调智能卡与 ccid 总线控制器之间的相关性(推荐至 第 20.16.3 节 “设备地址”)。