使用LDAP管理ssh登陆的key

无论如何先配置一个LDAP服务器,账号管理比较方便,几乎各种网络应用都支持LDAP,这样就可直接使用统一的账号体系。
但是注意,下面的账号并不是个人的LDAP账号,而是针对的登陆主机上的账号,一般使用posixAccount类,而一般的只能登陆网络应用的账号体系使用的是inetOrgPerson类。关键点我在/etc/ldap.conf中注释。

安装ssh-ldap-pubkey

登陆主机上安装ssh-ldap-pubkey(这里的使用说明已很详细了),简单点直接使用

pip install ssh-ldap-pubkey

即可安装,安装后修改配置文件/etc/ldap.conf即可。如

# /etc/ldap.conf

# 配置LDAP服务器地址
uri ldap://localhost

# The distinguished name of the search base.
base dc=mycom,dc=com

# The LDAP version to use. Default is 3 if supported by client library.
#ldap_version 3

# 绑定账户,通过这个账户去查询信息的,默认是绑定匿名账户,如果不能匿名查询就需要指定可用的账户。
# 下面是我的管理账号
binddn cn=admin,dc=mycom,dc=com
bindpw adminpassword

# The search scope; sub, one, or base.
scope one

# 看这里,只搜索属于posixAccount类的账号
pam_filter objectclass=posixAccount

# The user ID attribute (defaults to 'uid').
pam_login_attribute uid

# 登陆时将会去这个DN下找符合pam_filter的账号,这个DN下的账号对应登陆主机上账号。
nss_base_passwd       ou=lemote,dc=mycom,dc=com?one

配置sshd

安装的文件位于/usr/local/bin下,可直接挪至/usr/bin下,这两个目录的权限不一样,目录和文件的权限会导致认证失败,简单的方法就是安装后

mv /usr/local/bin/ssh-ladp-pubkey*  /usr/bin

然后修改/etc/ssh/sshd_config,添加下面两行接口:

AuthorizedKeysCommand /usr/bin/ssh-ldap-pubkey-wrapper
AuthorizedKeysCommandUser nobody

重启sshd服务即可生效。

配置LDAP服务器

加入openssh-lpk.schema,给想要使用此特性的登陆账号添加上sshPublicKey属性即可。

其他说明

这里只是管理主机登陆账号,还没有建立属于个人的通用账号和主机们的登陆账号之间的链接。一般就这样子吧,比如git服务器上,大家都把自己的pubkey添加到git账号的sshPublicKey中就可以了。想玩的高级,可自行琢磨。

发表评论

电子邮件地址不会被公开。 必填项已用*标注