two-factor 认证的问题

研究了下 google 出的 google-authenticator,准备用在 ssh 的登陆上,安装配置确实很简单,参照这个文档一步步往下就可以。
很不幸的是,如果要在 ssh 的登陆过程中使用,就没那么理想了。
目前我们所有的服务器都是通过公私钥验证,理论上说,只要私钥不被窃取,是不可能登陆到我们服务器的。但是试用了 two-factor 之后,则必须要开启密码验证的方式,然后再输入那个随机生成的一串字符。根据这两个(1, 2)文档所示,目前没有好的方式可以让公钥认证跟密码登陆共存,这也就意味着,我们是不可能同时使用 two-factor 结合公私钥来登陆服务器的。除非不使用标准的 openssh。
这样看来,two-factor 并不是一个很好的选择。看到有不少公司把它拿来做跳板机,有钱的当然直接买 RSA 了,这或许是一个比较好的选择,不过这样意味着需要一些集中的用户管理方案。
很早之前,我无意发现有同事把自己电脑的整个 ~ 给同步到 github.com 上去了,这个目录里面包含要进入我们的内网环境的 VPN 证书文件,登陆服务器的私钥文件。不幸的是,这个项目还有不少的 fork,虽然事后做了大量的工作,不过现在看来,是不是上个 two-factor 能够最大程度的减小这类悲剧发生之后的影响。