为什么ssh的“密码”提示需要这么长时间才能显示?


94

尝试输入时ssh,密码提示花费的时间太长(几乎两分钟)而无法显示。

为什么会这样?


1
吉尔的回答应该是在评论中所解释的回答,真的。
gertvdijk

Answers:


143

有几件事情可能出错。添加-vvv以使ssh打印出正在执行的操作的详细轨迹,并查看暂停的位置。

问题可能出在客户端或服务器上。

服务器上的一个常见问题是,如果您是从反向DNS查找超时的客户端连接。(“反向DNS查找”意味着从客户端计算机的IP地址返回到主机名。它对安全性并没有真正的帮助,对于诊断来自日志条目的入侵尝试仅有一点帮助,但是默认配置还是可以这样做。)要关闭反向DNS查找,请添加UseDNS no/etc/ssh/sshd_config(您需要在服务器上为root用户;请记住之后再重新启动SSH服务)。

可能出错的另一件事是GSSAPI身份验证超时。如果您不知道那是什么,那么您可能就不依赖它了。您可以通过将行添加GSSAPIAuthentication no/etc/ssh/ssh_config~/.ssh/config(在客户端)来关闭它。


8
对我来说,这是GSSAPIAuthentication问题。谢谢。
RajaRaviVarma

14
反向DNS查找是我的问题
2014年

2
反向DNS也是我的罪魁祸首,并且UseDNS no像魅力一样将其修复。我在没有DNS服务器的内部网络上,无法处理内部IP的反向查找。
Jordan Mack 2014年

1
禁用是否有安全隐患GSSAPIAuthentication?(进行15分钟的搜索并没有发现这一点)
亚历山大·马拉霍夫

3
@AlexanderMalakhov如果您依靠它来登录,那么如果禁用它,则将自己锁定在外。除此之外,没有。而且,如果您使用的是GSSAPI,您将知道—您必须在网络上配置一些基于GSSAPI的服务。
吉尔斯

13

让时间登录过程,看看需要多长时间:

[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[root@ISSLABNTL01 ~]# exit
logout
Connection to ISSLABNTL01 closed.

real    0m45.192s
user    0m0.003s
sys     0m0.005s

You have new mail in /var/spool/mail/root
[root@gislab00207 ~]#

看到上面的信息,花了大约45秒钟才能登录--------非常慢

一旦您以root身份登录,请编辑sshd_config文件并按如下所示更改UseDNS条目。在这里,我使用sed而不是编辑文件。

[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config
#UseDNS yes

[root@ISSLABNTL01 ~]# sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config
UseDNS no

[root@ISSLABNTL01 ~]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[root@ISSLABNTL01 ~]# exit

让我们为登录过程计时,现在看看将花费多长时间。

[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct  4 07:55:03 2013 from 3.60.40.232

[root@ISSLABNTL01 ~]# exit
logout

Connection to ISSLABNTL01 closed.

real    0m6.192s
user    0m0.003s
sys     0m0.005s

You have new mail in /var/spool/mail/root
[root@gislab00207 ~]#

看到现在花了6秒钟,这是我键入密码的时间。


太棒了..时间点了.. useDNS没有为我修复它。.我进行了密码身份验证,并且延迟了该密码输入提示的出现。 '不包括我输入的密码。
barlop 2014年

我可以证实UseDNS no/etc/ssh/sshd_config固定我的问题

UseDNS no解决了它
Pandurang Patil

@PandurangPatil错误的配置选项:usedns
Yusef Mohamadi

@zhilevan您还应该提及为什么它的配置错误。这将有助于了解为什么它的配置不正确
Pandurang Patil

4

Ubuntu的安装有问题。

要修复它,您必须在/etc/nsswitch.conf中更改此行:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

并为此更改它:

hosts:          files dns

3
Ubuntu的配置没有错。在某些情况下(没有中央DNS服务器的家庭网络),这是正确的。在其他情况下(mDNS请求超时的网络),这很糟糕。
吉尔斯2013年

[NOTFOUND = return]应该不存在。
Neuquino

4
@Neuquino 应该在那里。显然,其中的原因是您不了解。nsswitch.conf像这样摆弄自己就是麻烦,并且没有提供一般的解决方案来减慢SSH速度。
gertvdijk

在我看来,这是唯一
可行的

4

就我而言,可以通过重新启动来解决此问题systemd-logind

systemctl restart systemd-logind

这是在Serverfault上提到的

我必须定期执行此操作,但我不知道问题的根本原因是什么。


1

在我的情况下,ssh的调试输出在“连接”时仅停止了30秒。原来,该解决方案与我的本地系统上的DNS设置有关。先前的网络配置在/etc/resolv.conf文件中留下了伪造的DNS服务器。用当前的DNS服务器替换它可以解决此问题。


0

对我来说,将系统dns更改为127.0.0.1,在此之前,该主机是不存在的主机。

nano /etc/resolv.conf

并写以下

domain localdomain
search localdomain
(Removed this line) ===> nameserver 10.0.0.1
(Added this line) ===> nameserver 127.0.0.1

对我来说,这个文件似乎是/etc/resolv.conf(no e)
Shadow

0

我不太了解海报的环境,但是对于其他有类似问题的人,可能是的一个问题sssd,我们通常将其与ldap mojo结合使用。

这发生在我身上:

$ time ssh server.example.com

real  2m0.018s
user  0m0.006s
sys   0m0.004s

我必须访问服务器(在我的情况下是通过控制台),然后执行以下操作:

service restart sssd

在那之后,事情就开始了。我还没有时间调试根本原因,但是这个创可贴对我有用。


0

我可以通过ssh解决密码提示缓慢的问题-通过在dlink路由器上的DHCP设置中选中“ 启用DNS中继”来解决。之后,与SSH的连接在一秒钟内即可完成。

Network Settings -> Router Settings -> Enable DNS Relay [x]

默认配置将每个DNS请求转发给提供程序。尽管我连接的是ssh pi@10.0.0.103,但速度很慢。解决方案的一个提示是通过dhcp提供的/etc/resolv.conf中的“ search upc.at”条目。

dlink手册指出:

When DNS Relay is enabled, DHCP clients of the router will be assigned 
the router's LAN IP address as their DNS server. All DNS requests that 
the router receives will be forwarded to your ISPs DNS servers. 
When DNS relay is disabled, all DHCP clients of the router will 
be assigned the ISP's DNS server.

在客户端和服务器上释放dhcp后,通过SSH的连接又很快。HTH。

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.