Answers:
我相信金雅拓驱动程序现在是开源的。他们在其网站上提供了源代码。
您将需要配置pam
模块(我不确定如何执行此操作,但是代码肯定在那里)。我想pam
配置将需要证书原则到本地用户ID的映射。
我相信GDM现在支持智能卡,但是我不确定它如何检测到它。稍后,我将尝试进行查找(最简单的方法可能只是查看gdm
源代码)。
当然,这一切都需要pcscd
和libpcsclite
安装。您还需要将复制libgtop11dotnet.so
到/usr/lib
。
我建议使用非洲菊。麻省理工学院生产krb5客户端和服务器。
vwduder,您能推荐一个智能卡读卡器和一个符合FIPS-201的卡吗?
http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf
我在自己的服务器上有一个副本,但是目前在此堆栈跟踪上我还不够流行,无法与您共享。以上内容仅比我们自己的服务器可靠性稍差,因此您可能可以从它们那里获取它;)
[编辑]我现在很受欢迎!
当使用RSA密钥时,1)和2)是微不足道的,因为正如我们将在3)中看到的那样,实际的证书在这种情况下是无关紧要的。只需访问cacert.org或生成一个自签名证书,您便已准备就绪。
对于3),您需要提取公钥并将其安装在$ HOME / .ssh / authorized_keys中。注意文件所有权和权限!(.ssh为700,authorized_keys为600)。不建议在主机范围内进行公钥身份验证,但应作为好奇心的练习。
至于4),您应该研究PuTTY SC(http://www.joebar.ch/puttysc/)或-最好是PuTTY-CAC(http://www.risacher.org/putty-cac/),它会改善具有更好公钥提取算法的PuTTY SC,还包括PuTTY开发分支的Kerberos-GSSAPI支持。
我制作了一个视频,展示了如何将智能卡与使用PuttySC和SecureCRT的Linux服务器一起使用。您可以在此处观看:如何使用智能卡进行SSH
我没有解释如何在卡中提供证书,但是如果您这样做,请记住应该使用卡管理系统更改卡的管理密钥。如果您的公司为您提供了智能卡,那么您将容易得多,这样您就不必担心这部分了。
设置好卡后,需要提取公钥,然后将其添加到〜/ .sshd / authorized_key。
要连接到服务器,可以使用诸如PuttySC或SecureCRT之类的工具。您将需要获得卡的PSKC#11库(从智能卡制造商或开放源版本)。使用该库配置SSH工具,它应该能够读取它并找到证书。
进行身份验证时,该工具将提示您输入智能卡PIN。