23.17.7. SmartCard 设备
虚拟智能卡设备可以通过
smartcard
元素提供给客户端虚拟机。主机物理机器上的 USB 智能卡读取器设备不能用于有设备透传的客户机虚拟机。这是因为,主机物理机和客户机虚拟机均不能使用,并且在从客户机虚拟机中删除时,它可以锁定主机物理计算机。因此,一些虚拟机监控程序提供了一个特殊的虚拟设备,可向客户机虚拟机提供智能卡接口,有几种模式来描述如何从主机物理机器获取凭证,甚至是从创建到第三方智能卡供应商的频道中获取的模式。
使用管理工具配置 USB 设备重定向,以修改域 XML 的以下部分:
图 23.45. 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 卡接口设备)的设备。
模式属性如下:
参数 | 描述 |
---|---|
mode='host' | 在这个模式中,虚拟机监控程序会将客户机虚拟机的所有请求中继到通过 NSS 对主机物理机器的智能卡进行直接访问。不需要其他属性或子元素。请参阅以下关于使用可选的 地址 子元素的信息。 |
mode='host-certificates' | 这个模式允许您提供三个驻留在主机物理机器数据库中的 NSS 证书名称,而不是要求将智能卡插入到主机物理机器中。这些证书可以使用命令 certutil -d /etc/pki/nssdb -x -t CT,CT,CT -S -s CN=cert1 -n cert1 -n cert1,并且生成的三个证书名称必须作为三个 证书子元素 的内容提供。额外的子元素 数据库 可以指定到备用目录的绝对路径(与创建证书时的 -d 标志匹配);如果不存在,则默认为 /etc/pki/nssdb 。 |
mode='passthrough' | 使用此模式,您可以通过二级字符设备将所有请求连接到第三方提供程序(这样又可能会与智能卡通信或使用三个证书文件),而不是让管理程序直接与主机物理机器通信。在这种运行模式中,需要额外的属性 类型 ,与支持的串行设备类型之一匹配,用于描述隧道的主机物理机器侧; type='tcp' 或 type='spicevmc' (使用 SPICE 图形设备的智能卡频道)是典型的。可根据给定类型需要其他子元素,如 源 ,但不需要 目标 子元素(因为字符设备的使用者是虚拟机监控程序本身,而不是在客户机虚拟机中可见的设备)。 |
每个模式支持可选的子元素
地址
,它可以微调智能卡和合计总线控制器之间的相关性。如需更多信息,请参阅 第 23.17.2 节 “设备地址”。