当我通过SSH进入Ubuntu 9.05服务器时,为什么“ password”提示永远消失?


27

答:实际上是在执行反向DNS解析。根据以下建议和本文,我在sshd_config中添加了“ UseDNS no”,重新启动了ssh,现在立即显示密码提示。

当我通过SSH进入服务器时,系统会显示标准的“登录为:”提示,然后显示“ user @ host的密码:”提示。无论出于何种原因,第二个总是需要一段时间才能显示。我的服务器没有任何负载,通常执行命令的速度非常快。

现在,在我按Enter输入用户名的时间与第二个提示出现之间,我们只说了10秒钟左右,但是当您这样做时,它会很烦人。我怀疑Ubuntu正在查找我的用户帐户,但是在整个安装过程中,它有<5个帐户。

更新@Josh / var / log / messages确实包含以下gem:

Oct 28 16:54:59 Athena sudo: pam_sm_authenticate: Called
Oct 28 16:54:59 Athena sudo: pam_sm_authenticate: username = [msmith]
Oct 28 16:54:59 Athena sudo: Warning: Using default salt value (undefined in ~/.ecryptfsrc)
Oct 28 16:55:01 Athena sudo: Passphrase key already in keyring; rc = [1]
Oct 28 16:55:02 Athena sudo: Passphrase key already in keyring; rc = [1]
Oct 28 16:55:02 Athena sudo: There is already a key in the user session keyring for the given passphrase.

msmith是我的用户名。这是什么意思呢?


您知道(或想学习)如何使用诸如Wireshark或的数据包嗅探器tcpdump吗?这可以告诉您服务器是否确实在使用所有时间,或者实际上是否在与客户端通信。
Arjan

Answers:


17

是否有可能在您的IP上进行反向DNS查找?如果客户端使用的是公共IP地址,或者您的服务器使用以下类似的内容,则可以在线检查结果:

dig -x CLIENT_IP_ADDRESS

里面有东西/var/log/messages吗?


我的日志中确实有一个警告:警告:使用默认盐值(在〜/ .ecryptfsrc中未定义)。我将整个部分发布到该问题以供您分析。
rcampbell

@ rrc7cz,那么反向DNS呢?您的IP地址可以解析吗?(我怀疑这是否会有所帮助,因为通常情况下,要决定是否显示用户名提示,这需要一些握手。在我的Mac上使用Wireshark进行的快速测试表明,在要求用户名输入之前,SSH已启动。但是也许有些客户甚至在尝试连接之前都要求该用户名...?)
Arjan

3
我在几个安装中遇到了反向DNS查找问题,从而减慢了我的ssh连接速度...如果发现这种情况,请在/ etc / ssh / sshd_config中注释掉“ UseDNS yes”行,然后重新启动sshd。
约翰·巴雷特

@john,您还记得键入用户名速度是否放慢了吗?
Arjan

1
“ UseDNS no”也帮助了我!问答问答!
Grizly 2012年

14

反向DNS解析(服务器试图获取给定IP的客户端名称)可能花费时间。您可以检查/ etc / ssh / sshd_config是否设置了“ VerifyReverseMapping yes”吗?将其设置为“ VerifyReverseMapping no”,然后检查是否有帮助。

编辑:似乎现在不赞成使用VerifyReverseMapping,并且useDNS是sshd_config中的新配置。


可能是正确的,但随后立即显示用户名提示是否有意义,然后需要10秒钟才要求输入密码?
Arjan

客户端能够解析服务器的名称并发送请求,这就是为什么立即显示用户提示的原因。但是随后服务器尝试获取客户端名称(反向DNS解析)。如果输入剂量不存在,则可能会超时。sshd-config中的“ VerifyReverseMapping”设置控制此检查。
secureBadshah,2009年

1
这就是我这种情况下运行缓慢的原因,因此至少在某些情况下确实有意义。请注意,默认值为yes,所以不要只搜索是否useDNS已设置:)
Nanne 2012年


3

您始终可以使用以下用户名登录:

ssh user@server

有什么作用吗?

如果您使用的是PuTTY,则可以在“ 连接”->“数据”其配置为自动登录用户名。


1
虽然这显然并不能加快显示密码提示的时间,但可以肯定地加快了整个登录过程。谢谢
rcampbell

3

如果您没有合适的域名来命名,那就把它放进去/etc/hosts。看看它是否运行得更快.com

如果问题是解析器超时,则可以解决该问题。


1

请记住,客户端还将执行反向DNS检查检查,如果在某些分辨率配置下不存在反向DNS映射,则超时可能需要30秒或更长时间。

/etc/ssh/ssh_config~/.ssh/config设置CheckHostIP no中禁用此客户端查找。

请参阅man 5 ssh_config以获取更多详细信息。


1

我找到了解决此问题的替代方法:-http : //www.patrickmin.com/linux/tip.php?name=ssh_pause

我在Windows下使用Putty登录到Linux构建机器时遇到了同样的问题。将我的Windows盒的IP地址添加到Linux机器上的/ etc / hosts可以解决此问题。


3
欢迎使用超级用户-我们通常希望您提供详细信息,而不仅仅是链接。您可以编辑答案以从链接中添加更多信息吗?
Simon Sheehan

1

仅出于记录目的,我遇到了一个同样的问题,即ssh从家庭到我的家庭服务器的速度很快(主要是将其用于git),但是需要大约10到20秒的工作时间才能提示输入密码。

我必须关闭UseDNS no并重新启动sshd sudo systemctl restart sshd.service。然后,它可以在所有位置工作。

我知道问题已经得到回答和接受,但是我想添加信息,因为我必须“主动”将其设置为no才能停止使用dns。


0

请检查nslcd(LDAP守护程序)是否正在运行:

ps -ef | grep nslcd

可能会导致此问题。

如果它正在运行,请停止它并从服务列表中删除

service nslcd stop
chkconfig nslcd off
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.