我正在尝试使用ssh密钥对在LDAP中验证用户。我正在运行Ubuntu 14.04。 我有一个LDAP设置,其用户帐户具有ssh公钥对象类(已应用的架构)。但是,有一个新的命令,openssh sshd_config能够接受名为AuthorizedKeysCommand的接受脚本来为用户查找ssh密钥。
请参阅combine_ssh_public-key_and_ldap_on_ubuntu
我的问题是,当我添加此命令然后重新启动sshd时,它不会侦听端口22.它说
ssh stop/waiting
ssh start/running
当我运行' service ssh status'时,我看到了:
ssh start/running
然而,当我尝试连接时,即。 ' ssh localhost',我明白了:
ssh: connect to host localhost port 22: Connection refused
当我用
检查监听端口时netstat -a | egrep 'Proto|LISTEN'
我明白这一点:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 10.5.0.36:domain *:* LISTEN
tcp 0 0 localhost:domain *:* LISTEN
tcp 0 0 localhost:953 *:* LISTEN
tcp 0 0 *:ldap *:* LISTEN
tcp6 0 0 [::]:domain [::]:* LISTEN
tcp6 0 0 ip6-localhost:953 [::]:* LISTEN
tcp6 0 0 [::]:ldap [::]:* LISTEN
所以ssh没有在端口22上侦听,它没有在任何端口上侦听。它甚至看起来都没有开始。 当我在sshd_conf中注释掉这一行时就开始了。
AuthorizedKeysCommand "/etc/ssh/ldap-keys.sh"
有谁知道我做错了什么?
ssh -V返回1:6.6p1
答案 0 :(得分:2)
我发现这不起作用的原因是因为我没有在sshd_config中提供AuthorizedKeysCommandUser。
这被宣传为可选添加,但似乎在我的情况下它是必需的。我刚刚添加了
AuthorizedKeysCommandUser root
答案 1 :(得分:0)
进入完全相同的问题,但我担心以root身份运行任何东西,所以我补充说:
AuthorizedKeysCommandUser nobody
这也解决了这个问题。