下面的日志来自 SSHD 服务器,当时 SSH 客户端正在尝试连接。我确定我有正确的 ssh 密钥。我刚刚比较了两个 RHEL5 服务器。如图所示,这意味着服务器由于某种原因关闭了连接。但是有什么建议可以尝试解决问题并找到根本原因吗?
Jul 29 20:12:11 sshd[13259]: subsystem request for sftp
Jul 29 20:12:11 sshd[13259]: channel_by_id: 0: bad id: channel free
Jul 29 20:12:11 sshd[13259]: Disconnecting: Received data for nonexistent channel 0.
操作系统:RHEL 5.11,SSHD 服务:默认
答案1
该错误消息Disconnecting: Received data for nonexistent channel 0.
可能是由不正确的 sshd 配置引起的。
检查该行Subsystem sftp /usr/lib/openssh/sftp-server
(或类似内容)是否/etc/ssh/sshd_config
指向正确的二进制文件。
造成错误的另一个原因可能是用户的system shell
设置不正确。/etc/passwd
来源
答案2
我收到此错误是因为服务器磁盘空间不足。删除一些大文件解决了这个问题,我能够再次将文件通过 SFTP 传输到服务器。
答案3
查看
/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_time_wait
或者
/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_close_wait
我正在寻找一种解决方案来减少服务器上的 XXX_WAIT 数量
[mihamina@RKTMB ~]$ sudo ss -taupen | grep WAIT
tcp TIME-WAIT 0 0 127.0.0.1:3128 127.0.0.1:60036 timer:(timewait,15sec,0) ino:0 sk:ffff9bbf5ba65000
tcp TIME-WAIT 0 0 127.0.0.1:3128 127.0.0.1:60024 timer:(timewait,1.420ms,0) ino:0 sk:ffff9bbee4aa2300
tcp TIME-WAIT 0 0 127.0.0.1:59994 127.0.0.1:3128 timer:(timewait,54sec,0) ino:0 sk:ffff9bbf5ba64c00
tcp TIME-WAIT 0 0 127.0.0.1:60028 127.0.0.1:3128 timer:(timewait,2.467ms,0) ino:0 sk:ffff9bbee4aa2600
tcp TIME-WAIT 0 0 127.0.0.1:59946 127.0.0.1:3128 timer:(timewait,23sec,0) ino:0 sk:ffff9bbf5ba65900
tcp TIME-WAIT 0 0 127.0.0.1:3128 127.0.0.1:60032 timer:(timewait,7.045ms,0) ino:0 sk:ffff9bbee4aa2800
tcp TIME-WAIT 0 0 127.0.0.1:60030 127.0.0.1:3128 timer:(timewait,5.521ms,0) ino:0 sk:ffff9bbee4aa2a00
... # I have a Loooooottt
我发现https://www.lognormal.com/blog/2012/09/27/linux-tcpip-tuning/
但如果你仔细阅读,他们会警告数据包混乱......
答案4
接收到不存在的通道 0 winscp 的 SSH2_MSG_CHANNEL_DATA
发生问题是因为您正在参与提交文件的工作。一声问候。