rh436 - ssh验证/连接很慢

本文介绍了当遇到SSH连接响应缓慢的问题时,如何通过禁用客户端的Kerberos验证及调整服务端的UseDNS选项来解决。具体步骤包括检查配置文件、使用strace工具进行跟踪并最终修改设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版本:

客户端(client):

[root@desktop20 ~]# cat /proc/version
Linux version 2.6.32-220.el6.x86_64 (mockbuild@x86-004.build.bos.redhat.com) (gcc version 4.4.5 20110214 (Red Hat 4.4.5-6) (GCC) ) #1 SMP Wed Nov 9 08:03:13 EST 2011
[root@desktop20 ~]#

服务端(server):

[root@node1 ~]# cat /proc/version
Linux version 2.6.32-220.el6.x86_64 (mockbuild@x86-004.build.bos.redhat.com) (gcc version 4.4.5 20110214 (Red Hat 4.4.5-6) (GCC) ) #1 SMP Wed Nov 9 08:03:13 EST 2011
[root@node1 ~]#


症状:

在客户端执行ssh node1时,要等大概10秒才能出现输入密码的提示


解决:

================================================
使用strace跟踪,发现有个select函数用了10秒钟,查了半天也不知道到底是什么引起的(汗!-_- ...)

strace -o ssh.trc -fTttt ssh node4

view ssh.trc

... ...

    520 38328 1367794302.169155 connect(4, {sa_family=AF_FILE, path="/tmp/keyring-24Tr0l/socket.ssh"        }, 110) = 0 <0.000579>
    521 38328 1367794302.169947 write(4, "\0\0\0\1", 4) = 4 <0.000040>
    522 38328 1367794302.170091 write(4, "\v", 1) = 1 <0.000030>
    523 38328 1367794302.170213 read(4, "\0\0\1<", 4) = 4 <0.001052>
    524 38328 1367794302.171505 read(4, "\f\0\0\0\1\0\0\1\25\0\0\0\7ssh-rsa\0\0\0\1#\0\0\1\1\0\237n"        ..., 316) = 316 <0.000041>
    525 38328 1367794302.171831 write(3, "\177j\340\2263\3\245\26\360\231 \v\335]\364\353\276`t\256b        .\3\204rc\360\364'yKT"..., 64) = 64 <0.000207>
    526 38328 1367794302.172189 select(4, [3], NULL, NULL, NULL) = 1 (in [3]) <10.022289>
    527 38328 1367794312.194794 read(3, "s\374\275q\361\\\333\306\30g\2K\216\362@\267LG~k\343\312\23        2\223lJ\206\32s\330%H"..., 8192) = 80 <0.000014>
    528 38328 1367794312.194905 write(3, "=\310\33\227X\3142=R&*\302a\320\0R\202\334\372)\215\24\264        \20\256\tZ\20\332\263\357\245"..., 368) = 368 <0.000075>
    529 38328 1367794312.195019 select(4, [3], NULL, NULL, NULL) = 1 (in [3]) <0.007280>
    530 38328 1367794312.202396 read(3, "\261\200\311L\240\342\332\213:J\246\t\7Ctk\224\16\362\370\2        7\275\33^f\327D\3504\337\323\344"..., 8192) = 320 <0.000026>
    531 38328 1367794312.202557 write(4, "\0\0\2\223", 4) = 4 <0.000038>
... ...

526: vim里的行号

38328:进程ID

1367794302.172189:自1970-01-01 00:00:00 UTC到现在的秒数,精确到小数点后六位

select(4, [3], NULL, NULL, NULL) :select函数和参数

= 1:select函数的返回值

(in [3]) :?

<10.022289> :select函数用了多少秒,,精确到小数点后六位


================================================

strace搞不定,试试开启ssh的debug信息,看看能查到什么

ssh -vvv node1

... ...

debug1: Unspecified GSS failure.  Minor code may provide more information
Credentials cache file '/tmp/krb5cc_0' not found


debug1: Unspecified GSS failure.  Minor code may provide more information
... ...

看来是客户端启用了kerbose验证,但是我没打算使用kerbose验证,于是关了这个选项。

[root@desktop20 ssh]# grep GSSAPIAuthentication /etc/ssh/ssh_config
    GSSAPIAuthentication no
[root@desktop20 ssh]# 

关了之后,之前的提示没有了,可是问题依旧,ssh node1还是要等10秒。

(事实上GSS验证超时确实是发起ssh连接后要等很长时间才能输入密码的一个原因,但在这篇文章里只是原因之一,所以这里关闭客户端的GSS验证效果并不明显)


再执行ssh -vvv node1时发现总会在“debug3: Wrote 64 bytes for a total of 1109”卡上一小段时间

... ...

debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug3: Wrote 48 bytes for a total of 1045
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /root/.ssh/identity ((nil))
debug2: key: /root/.ssh/id_rsa (0x7f1391a6d970)
debug2: key: /root/.ssh/id_dsa ((nil))
debug3: Wrote 64 bytes for a total of 1109
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-keyex,gssapi-with-mic,password
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password

... ...


================================================

GOOGLE一圈之后发现不少回答都提到了服务端打开的UseDNS选项可能是问题的原因,于是关闭服务端UseDNS选项,重启sshd服务

[root@node1 ~]# grep UseDNS /etc/ssh/sshd_config
UseDNS no
[root@node1 ~]# /etc/init.d/sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]
[root@node1 ~]#

果然,现在从客户端ssh node1几乎是秒连。


REF:

1. ssh 连接很慢的解决办法

http://blog.youkuaiyun.com/ablo_zhou/article/details/5074887


2. Slow SSH authentication times

http://ubuntuforums.org/showthread.php?t=1605241

systemctl status rh-php72-php-fpm.service ● rh-php72-php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/rh-php72-php-fpm.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2025-05-31 01:43:39 CST; 15min ago Main PID: 8365 (php-fpm) Status: "Processes active: 0, idle: 10, Requests: 3, slow: 0, Traffic: 0req/sec" CGroup: /system.slice/rh-php72-php-fpm.service ├─8365 php-fpm: master process (/etc/opt/rh/rh-php72/php-fpm.conf) ├─8366 php-fpm: pool www ├─8367 php-fpm: pool www ├─8368 php-fpm: pool www ├─8369 php-fpm: pool www ├─8370 php-fpm: pool www ├─8371 php-fpm: pool zabbix ├─8372 php-fpm: pool zabbix ├─8373 php-fpm: pool zabbix ├─8374 php-fpm: pool zabbix └─8375 php-fpm: pool zabbix May 31 01:43:39 zabbix-71 php-fpm[8365]: [31-May-2025 01:43:39] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library &#39;sysvsem&#39; (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/sysvsem (/opt/rh/rh-php72/root/usr/lib64/php/... May 31 01:43:39 zabbix-71 php-fpm[8365]: [31-May-2025 01:43:39] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library &#39;sysvshm&#39; (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/sysvshm (/opt/rh/rh-php72/root/usr/lib64/php/... May 31 01:43:39 zabbix-71 php-fpm[8365]: [31-May-2025 01:43:39] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library &#39;tokenizer&#39; (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/tokenizer (/opt/rh/rh-php72/root/usr/lib64/... May 31 01:43:39 zabbix-71 php-fpm[8365]: [31-May-2025 01:43:39] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library &#39;xml&#39; (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/xml (/opt/rh/rh-php72/root/usr/lib64/php/modules/... May 31 01:43:39 zabbix-71 php-fpm[8365]: [31-May-2025 01:43:39] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library &#39;xmlwriter&#39; (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/xmlwriter (/opt/rh/rh-php72/root/usr/lib64/... May 31 01:43:39 zabbix-71 php-fpm[8365]: [31-May-2025 01:43:39] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library &#39;xsl&#39; (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/xsl (/opt/rh/rh-php72/root/usr/lib64/php/modules/... May 31 01:43:39 zabbix-71 php-fpm[8365]: [31-May-2025 01:43:39] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library &#39;zip&#39; (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/zip (/opt/rh/rh-php72/root/usr/lib64/php/modules/... May 31 01:43:39 zabbix-71 php-fpm[8365]: [31-May-2025 01:43:39] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library &#39;wddx&#39; (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/wddx (/opt/rh/rh-php72/root/usr/lib64/php/module... May 31 01:43:39 zabbix-71 php-fpm[8365]: [31-May-2025 01:43:39] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library &#39;xmlreader&#39; (tried: /opt/rh/rh-php72/root/usr/lib64/php/modules/xmlreader (/opt/rh/rh-php72/root/usr/lib64/... May 31 01:43:39 zabbix-71 systemd[1]: Started The PHP FastCGI Process Manager. Hint: Some lines were ellipsized, use -l to show in full.
最新发布
06-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值