遇到一台服务器登陆比较慢,网上常见的方法,包括修改
UseDNS no
、
GSSAPIAuthentication no
都没有效果,
ssh -vvv [主机]
显示卡在
debug1: Offering public key: /root/.ssh/id_dsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
# 卡住N秒
网上有说是DNS解析问题,但抓包也没发现有dns请求。
方法一:删除
/root/.ssh/id_dsa
,可以解决,但对免密码登陆有影响。
方法二:详见 https://tanelpoder.com/posts/troubleshooting-linux-ssh-logon-delay-always-takes-10-seconds/
总结起来:
-
strace -r -T -f -p [sshd进程号]
- 登陆,看sshd服务卡在哪个位置,一般是等待某个连接的响应(poll等待某个fd)
- 根据上一步的fd,向上查找fd创建的日志,一般是connect生成
-
根据上一步上下文信息,可能就能定位到故障原因了。文件是DNS,我遇到是跟
nslcd
服务的交互卡住了,这个服务不知道什么用,禁掉服务就正常了。
版权声明:本文为rainharder原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。