如何设置智能卡SSH身份验证?


9

我希望能够使用Gemalto .NET智能卡作为身份验证方法通过SSH到我的计算机。如何在Fedora 13(或通用的Red Hat风格)机器上完成此操作?

这些是我认为需要的粗略步骤:

  1. 提供智能卡的证书(可能是颁发证书的CA?)
  2. 获取证书到智能卡上
  3. 配置SSH服务器以允许智能卡身份验证并将其配置为使用特定的证书/ CA
  4. 具有智能卡支持的SSH客户端(基于Windows的免费客户端的加分)

Answers:


2

我相信金雅拓驱动程序现在是开源的。他们在其网站上提供了源代码。

您将需要配置pam模块(我不确定如何执行此操作,但是代码肯定在那里)。我想pam配置将需要证书原则到本地用户ID的映射。

我相信GDM现在支持智能卡,但是我不确定它如何检测到它。稍后,我将尝试进行查找(最简单的方法可能只是查看gdm源代码)。

当然,这一切都需要pcscdlibpcsclite安装。您还需要将复制libgtop11dotnet.so/usr/lib


谢谢!那使我走上了正轨。如果有人正在考虑基于RedHat的设置,这里还有一些非常有用的信息:centos.org/docs/5/html/Deployment_Guide-zh-CN/sso-ov.html
Geoff Childs,2010年

在哪里找到libgtop11dotnet.so文件?
user568021 '19

2

我建议使用非洲菊。麻省理工学院生产krb5客户端和服务器。

vwduder,您能推荐一个智能卡读卡器和一个符合FIPS-201的卡吗?

http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf

我在自己的服务器上有一个副本,但是目前在此堆栈跟踪上我还不够流行,无法与您共享。以上内容仅比我们自己的服务器可靠性稍差,因此您可能可以从它们那里获取它;)

[编辑]我现在很受欢迎!

http://www.colliertech.org/state/FIPS-201-1-chng1.pdf


@vwduder试图回复,但他还没有进入内测
cjac 2010年



谢谢cjac!结合vwduder的贡献,我认为我对此很满意。
Geoff Childs,2010年

凉!我在想的时候再说一遍。我父亲因找到这些而获得荣誉。 smartcardworld.com
cjac 2010年

1

当使用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支持。


0

我制作了一个视频,展示了如何将智能卡与使用PuttySC和SecureCRT的Linux服务器一起使用。您可以在此处观看:如何使用智能卡进行SSH

我没有解释如何在卡中提供证书,但是如果您这样做,请记住应该使用卡管理系统更改卡的管理密钥。如果您的公司为您提供了智能卡,那么您将容易得多,这样您就不必担心这部分了。

设置好卡后,需要提取公钥,然后将其添加到〜/ .sshd / authorized_key。

要连接到服务器,可以使用诸如PuttySC或SecureCRT之类的工具。您将需要获得卡的PSKC#11库(从智能卡制造商或开放源版本)。使用该库配置SSH工具,它应该能够读取它并找到证书。

进行身份验证时,该工具将提示您输入智能卡PIN。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.