最近遇到部分Linux登录卡顿的情况,现象为连接很久之后才跳出输入认证密码的框,开启SSH客户端的调试日志,发现是出现在请求认证的时候,具体日志如下:

...
[LOCAL] : Changing state from STATE_EXPECT_NEWKEYS to STATE_CONNECTION 
[LOCAL] : SEND: SERVICE_REQUEST[ssh-userauth] 
[LOCAL] : RECV: SERVICE_ACCEPT[ssh-userauth] -- OK 
[LOCAL] : SENT : USERAUTH_REQUEST [none] 
[LOCAL] : Authenticating as user root
<!-- 在此处卡顿很久 -->
[LOCAL] : RECV : USERAUTH_FAILURE, continuations [publickey,gssapi-keyex,gssapi-with-mic] 
[LOCAL] : SENT : USERAUTH_REQUEST [publickey (ssh-rsa) - unsigned,fingerprint (SHA-2 hash)
...

在网上搜索了很多文章,均是要求将 GSSAPIAuthentication 设置为 no ,但是发现对此卡顿无效。

最后通过不断尝试,在 /etc/ssh/sshd_config 文件中将 UseDNS 设置为 no 解决问题。

UseDNS 选项打开状态下,当客户端试图登录SSH服务器时,服务器端先根据客户端的IP地址进行DNS PTR反向查询出客户端的主机名,然后根据查询出的客户端主机名进行DNS正向A记录查询,验证与其原始IP地址是否一致,这是防止客户端欺骗的一种措施,但一般我们的是动态IP不会有PTR记录,打开这个选项不过是在白白浪费时间而已,不如将其关闭。


原文链接地址:http://blog.exsvc.cn/article/ssh-login-slow.html
转载请注明:转载自 易科博客 ,谢谢!

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注