ping速度很快,但ssh连接却要等待很久才能连上。
连接过程登录模式排查
ssh -v root@192.168.10.15
输入中看行:
Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
如果有多个值,说明是按顺序执行,并且看到的过程也是trying
把不需要登录模式删除
UseDNS原因*(主要原因)
UseDNS:是OpenSSH服务器上的一个DNS查找选项,而且默认还是打开的,在打开的状态下,每当客户端尝试连接OpenSSH服务器的时候,服务端就自动根据用户客户端的IP进行DNS PTR反向查询(IP反向解析才会有记录),查询出IP对应的Hostname,之后在根据客户端的Hostname进行DNS正向A记录查询。通过这个查询,验证IP是否和连接的客户端IP一致。但绝大部分我们的机器是动态获取IP的,也就是说,这个选项对于这种情况根本就没用——即使是普通静态IP服务器,只要没有做IP反向解析,也难以适用。如果你符合这些情况,建议关闭UseDNS以提高SSH远程登录时候的认证速度。
在server上/etc/ssh/sshd_config文件中修改或加入UseDNS=no
DNSServer原因*(根本原因)
#查看dns-server配置
cat /etc/resolv.conf
发现配置的IP通过ping不好使,改成随网关或者8.8.8.8后,问题解决
最后的解决方案
关闭usedns
即能解决问题
配置合适的dns
与IT人员沟通,找到合适的dns服务器
关闭不必要的登录模式
/etc/ssh/ssh_config.d/05-redhat.conf
# 关闭GSSAPI登录
GSSAPIAuthentication no
# 启用Root用户登录
PermitRootLogin yes
#启用密码登录,否则会弹出上传密钥文件的验证,错误提示:Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
PasswordAuthentication yes
…
修改配置后,需要重启sshd
参考:
https://blog.youkuaiyun.com/tainyu/article/details/124317063
https://www.runoob.com/w3cnote/ssh-slow.html