只是想分享我的“方法”,我的客户端是Debian / Ubuntu特有的,但是我的服务器端与上面的基本相同,但还有一点“ HowTo:”
服务器:
启用公钥属性:
信用:
https://blog.shichao.io/2015/04/17/setup_openldap_server_with_openssh_lpk_on_ubuntu.html
cat << EOL >~/openssh-lpk.ldif
dn: cn=openssh-lpk,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: openssh-lpk
olcAttributeTypes: ( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey'
DESC 'MANDATORY: OpenSSH Public key'
EQUALITY octetStringMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
olcObjectClasses: ( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' SUP top AUXILIARY
DESC 'MANDATORY: OpenSSH LPK objectclass'
MAY ( sshPublicKey $ uid )
)
EOL
现在使用它添加ldif:
ldapadd -Y EXTERNAL -H ldapi:/// -f ~/openssh-lpk.ldif
在phpLDAPadmin中添加具有SSH公钥的用户
首先,使用“通用:用户帐户”模板创建一个用户。然后,转到“ objectClass”属性部分,单击“添加值”,然后选择“ ldapPublicKey”属性。提交后,返回到用户编辑页面,单击顶部的“添加新属性”,然后选择“ sshPublicKey”,将公钥粘贴到文本区域,最后单击“更新对象”。
sshPublicKey属性未显示-OpenLDAP PHPLDAP SSH密钥验证
Ubuntu客户端:
apt-get -y install python-pip python-ldap
pip install ssh-ldap-pubkey
sh -c 'echo "AuthorizedKeysCommand /usr/local/bin/ssh-ldap-pubkey-wrapper\nAuthorizedKeysCommandUser nobody" >> /etc/ssh/sshd_config' && service ssh restart
创建测试键:
ssh-keygen -t rsa
AuthorizedKeysCommandUser nobody
不要使用root。