从任何服务升级到 Debian 7.4 后,密码验证都需要很长时间。这适用于 SSH 登录、sudo'ing 和使用 dovecot(配置为使用 PAM)的身份验证。
我能够反向查找 DNS 条目,这似乎不是问题。感觉就像某些身份验证机制遇到了超时。我尝试启用 pam_debug,但我没有看到任何调试输出。
以下是执行 sudo 所需时间的示例(带有密码提示,在 sudo 缓存密码期间,它会立即生效):
ceicke@h1633420:~$ time sudo who
[sudo] password for ceicke:
ceicke pts/0 2014-08-01 09:19 (80.131.XXX.XXX)
real 0m27.976s
user 0m0.009s
sys 0m0.014s
Run Code Online (Sandbox Code Playgroud)
使用我的私钥 SSH 进入盒子也可以立即生效。所以真的密码检查过程需要很长时间。
我对我可以尝试的其他事情有点迷茫,特别是因为 PAM 模块对它正在做的事情非常非常沉默。
这是 strace 的输出:http : //pastebin.com/dRvqsrcd
我猜有很多调用time(null)会获取当前的 Unix 时间戳。似乎有些东西正在积极检查超时。
我注意到两件事:
time(null)通话经常与公开征集到之前/dev/urandom,它可以是我的服务器正在等待收集足够的熵?krb5在不同的地方有很多参考。我不使用 Kerberos 进行身份验证,我可以简单地pam_krb5.so从我的 pam 配置中取出吗?我没有很多准备strace输出的经验,也许你可以看到更多?
服务器上的熵相当低,在 100 - 200 之间。