当AuthorizedKeysCommand存在时,Openssh Connection被拒绝

时间:2014-05-22 18:09:47

标签: ubuntu ssh ldap openssh ubuntu-14.04

我正在尝试使用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

2 个答案:

答案 0 :(得分:2)

我发现这不起作用的原因是因为我没有在sshd_config中提供AuthorizedKeysCommandUser。

这被宣传为可选添加,但似乎在我的情况下它是必需的。我刚刚添加了

AuthorizedKeysCommandUser root

答案 1 :(得分:0)

进入完全相同的问题,但我担心以root身份运行任何东西,所以我补充说:

AuthorizedKeysCommandUser nobody

这也解决了这个问题。