![我的服务器上似乎存在一些“延迟” SSH 连接。我该如何修复它?](https://linux22.com/image/530569/%E6%88%91%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E4%BC%BC%E4%B9%8E%E5%AD%98%E5%9C%A8%E4%B8%80%E4%BA%9B%E2%80%9C%E5%BB%B6%E8%BF%9F%E2%80%9D%20SSH%20%E8%BF%9E%E6%8E%A5%E3%80%82%E6%88%91%E8%AF%A5%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%E5%AE%83%EF%BC%9F.png)
[root@server mike]# w
14:43:35 up 83 days, 1:25, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
mike pts/1 dsl-IP.w 14:43 0.00s 0.01s 0.03s sshd: mike [priv]
[root@server mike]# ps aux | grep ssh
root 1350 0.0 0.1 5276 1044 ? Ss Aug27 0:00 /usr/sbin/sshd
root 14328 0.0 0.2 8020 2580 ? Ss 12:49 0:00 sshd: dave [priv]
dave 14332 0.0 0.1 8020 1532 ? S 12:49 0:00 sshd: dave@notty
dave 14333 0.0 0.1 4696 1444 ? Ss 12:49 0:00 /usr/lib/openssh/sftp-server
root 14344 0.0 0.2 8020 2580 ? Ss 12:59 0:00 sshd: dave [priv]
dave 14347 0.0 0.1 8168 1564 ? S 13:00 0:00 sshd: dave@notty
dave 14348 0.0 0.1 4700 1504 ? Ss 13:00 0:00 /usr/lib/openssh/sftp-server
root 14351 0.0 0.2 8020 2580 ? Ss 13:04 0:00 sshd: dave [priv]
dave 14355 0.0 0.1 8168 1560 ? S 13:04 0:00 sshd: dave@notty
dave 14356 0.0 0.1 4696 1472 ? Ss 13:04 0:00 /usr/lib/openssh/sftp-server
root 14373 0.0 0.2 8020 2584 ? Ss 13:15 0:00 sshd: dave [priv]
dave 14377 0.0 0.1 8168 1560 ? S 13:15 0:00 sshd: dave@notty
dave 14378 0.0 0.1 4704 1500 ? Ss 13:15 0:00 /usr/lib/openssh/sftp-server
root 14385 0.0 0.2 8020 2584 ? Ss 13:28 0:00 sshd: dave [priv]
dave 14389 0.0 0.1 8168 1592 ? S 13:28 0:00 sshd: dave@notty
dave 14390 0.0 0.1 4696 1508 ? Ss 13:28 0:00 /usr/lib/openssh/sftp-server
root 14392 0.0 0.2 8020 2588 ? Ss 13:30 0:00 sshd: dave [priv]
dave 14396 0.0 0.1 8168 1604 ? S 13:30 0:00 sshd: dave@notty
dave 14397 0.0 0.1 4696 1492 ? Ss 13:30 0:00 /usr/lib/openssh/sftp-server
root 14402 0.0 0.2 8020 2584 ? Ss 13:33 0:00 sshd: dave [priv]
dave 14406 0.0 0.1 8020 1536 ? S 13:33 0:00 sshd: dave@notty
dave 14407 0.0 0.1 4696 1460 ? Ss 13:33 0:00 /usr/lib/openssh/sftp-server
root 14428 0.0 0.2 8020 2584 ? Ss 13:45 0:00 sshd: dave [priv]
dave 14432 0.0 0.1 8168 1580 ? S 13:45 0:00 sshd: dave@notty
dave 14433 0.0 0.1 4704 1512 ? Ss 13:45 0:00 /usr/lib/openssh/sftp-server
root 14439 0.0 0.2 8020 2580 ? Ss 13:53 0:00 sshd: dave [priv]
dave 14443 0.0 0.1 8020 1532 ? S 13:53 0:00 sshd: dave@notty
dave 14444 0.0 0.1 4696 1448 ? Ss 13:53 0:00 /usr/lib/openssh/sftp-server
root 14480 0.0 0.2 8020 2584 ? Ss 14:11 0:00 sshd: dave [priv]
dave 14484 0.0 0.1 8168 1588 ? S 14:11 0:00 sshd: dave@notty
dave 14485 0.0 0.1 4704 1492 ? Ss 14:11 0:00 /usr/lib/openssh/sftp-server
root 14487 0.0 0.2 8020 2580 ? Ss 14:12 0:00 sshd: dave [priv]
dave 14490 0.0 0.1 8020 1552 ? S 14:12 0:00 sshd: dave@notty
dave 14492 0.0 0.1 4696 1472 ? Ss 14:12 0:00 /usr/lib/openssh/sftp-server
root 14510 0.0 0.2 8020 2584 ? Ss 14:35 0:00 sshd: dave [priv]
dave 14514 0.0 0.1 8168 1568 ? S 14:35 0:00 sshd: dave@notty
dave 14515 0.0 0.1 4700 1492 ? Ss 14:35 0:00 /usr/lib/openssh/sftp-server
root 14517 0.0 0.2 8020 2580 ? Ss 14:37 0:00 sshd: dave [priv]
dave 14521 0.0 0.1 8020 1548 ? S 14:38 0:00 sshd: dave@notty
dave 14522 0.0 0.1 4696 1464 ? Ss 14:38 0:00 /usr/lib/openssh/sftp-server
root 14538 0.0 0.2 8020 2620 ? Ss 14:43 0:00 sshd: mike [priv]
mike 14542 0.0 0.1 8020 1560 ? S 14:43 0:00 sshd: mike@pts/1
root 14554 0.0 0.0 1720 560 pts/1 S+ 14:43 0:00 grep ssh
如上所示,我,mike,已登录 SSH 并执行命令。这是从w
命令中显示的。
但是,当前正在运行的 SSH 相关进程数量很奇怪。我认为dave's
sftp 会话可能出于某种原因未显示在输出中,w
但这并不能解释所有正在运行的进程...
怎么了? :/
答案1
看看设置:
ClientAliveCountMax 3
ClientAliveInterval 15
在 /etc/sysconfig/sshd_config 中。这将断开不响应保持活动的客户端。如果值不够积极,请调整这些值,这意味着 15 秒后我们会发送一个保持活动。如果 3 个保持活动未收到响应,我们将断开客户端(45 秒)。
答案2
Dave 正在用他的 sftp 客户端做一些愚蠢的事情。
基本上它不会关闭,或者它会无限期地保持 sftp 会话处于打开状态并保持活动状态。
一次 sftp 登录包含以下过程:
root 14480 0.0 0.2 8020 2584 ? Ss 14:11 0:00 sshd: dave [priv]
dave 14484 0.0 0.1 8168 1588 ? S 14:11 0:00 sshd: dave@notty
dave 14485 0.0 0.1 4704 1492 ? Ss 14:11 0:00 /usr/lib/openssh/sftp-server
您拥有 root 拥有的 sshd 进程(这是 sshd 本身的子进程),dave 拥有的进程是 dave 的非特权连接,然后是 sftp 服务器生成。
这一切看起来就像 Dave 连接了一堆时间或正在使用线程 sftp 客户端。
pkill 已经建议让你删除所有会话,例如pkill sftp-server
答案3
有一个名为 procps 的软件包。它包含各种有用的(读作 nifty)实用程序。其中一个实用程序是 pkill,它负责向用户和进程发送信号,例如:
- 停止用户终端
- 终止用户并注销
答案4
sftp 连接正在使用分段下载来下载一个或多个文件。我猜如果你终止 sftp 进程,那么所有的文件sshd: dave@notty
都会消失。