Linux系统ssh连接无响应

一.问题描述

某集群数据节点服务器频繁无法连接,服务器间出现可ping通但ssh无法连接的情况,使用带外地址登录后远程控制也无法显示正常界面,重启后会短暂恢复。

二.排查问题

重启服务器后检查服务器SSH状态均为正常,无奈只能去Redhat官网提case并sosreport收集日志等信息反馈后等待分析结果。

无法登录时得到的报错信息如下:
Linux系统ssh连接无响应插图

请在系统中执行以下命令,并将输出结果反馈
# ssh -vvv IP_address
收集strace的结果
# strace -fvttTyyx -s 4096 -o /tmp/strace.txt ssh IP_address
收集如下命令的输出结果,查看是否有RPM包丢失
# rpm -Va &rpmva.out

三.解决方案

将 /etc/ssh/sshd_config 文件中的如下条目取消注释,并重启sshd服务:
# cat etc/ssh/sshd_config | grep DNS
将sshd_config中UseDNS选项yes改为no并删掉
#vi /etc/ssh/sshd_config
UseDNS no
# systemctl restart sshd.service

重启解决,ssh正常连接使用

四.原因分析

  • UseDNS指定sshd是否应查找远程主机名,并检查所解析的远程IP地址的主机名是否映射回相同的IP地址。 默认值为"yes"。 如果此选项设置为no,则〜和.ssh / authorized_keys中的和和sshd_config匹配主机指令中只能使用地址,而不能使用主机名。
  • dns反查,当ssh某个IP时,系统会试图通过DNS反查相对应的域名,如果DNS中没有这个IP的域名解析,则会等到DNS查询超时才会进行下一步,消耗很长时间。
阅读剩余
THE END
诺言博客