1

我正在尝试使用 ssh 密钥对对 LDAP 中的用户进行身份验证。我正在运行 Ubuntu 14.04。我使用具有 ssh 公钥对象类(已应用模式)的用户帐户设置了 LDAP。然而,据推测,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

4

2 回答 2

2

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

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

AuthorizedKeysCommandUser root

于 2014-05-22T18:40:58.353 回答
0

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

AuthorizedKeysCommandUser nobody

这也解决了问题。

于 2017-09-15T18:41:21.857 回答