2014年3月15日

SSH 使用保存在LDAP里的公钥(Public Key)验证用户

鄙司员工的账户密码都保存在LDAP中统一管理,平时做各个独立系统鉴权操作很好用。但是若干主机登录时使用密码登录颇不方便,特别是用autossh做通道时。最好的办法还是每个人把自己的公钥上传到LDAP中, 然后用Key认证登录到系统中。

今天上网转了一圈, 了解一般的解决方案是在sshd_config 里配置 AuthorizedKeysCommand,

参数是一个命令。当用户登录时, 会调用这个命令, 把用户名传进去, 程序会返回该用户的public key。具体见 man sshd_config。

虽然有不少人写过 针对这个配置的ldap读取脚本,不过看起来都不满足我的需求。redhat也出过一个,不过没有找到它的独立项目,而是和redhat整合在一起,我也很不喜欢,就自己写了一个。
https://github.com/sean-lin/pylpk

测试了一下,基本能用。

没有评论: