ssh立即断开“写入失败:管道损坏”


3

当我尝试通过ssh登录到远程计算机时,我立即由于“写入失败:管道破裂”而断开连接。我尝试通过mosh登录,但mosh客户端冻结。

我已尝试使用Google搜索,但唯一能想到的答案是与超时有关(例如,此Unix堆栈交换问题)。我可以肯定这不是与超时有关的问题,因为自从昨晚(上次运行时)以来,我没有进行任何个人配置更改,并且其他用户也可以登录。

使用-vvv(非常冗长的日志)运行ssh并没有帮助。

我已经解决了我的特定问题(请参见下面的答案),但是我想知道还有哪些其他问题可能导致该问题(ssh断开连接并立即声明“写入失败:管道破裂”)?

我进一步想知道sshd / mosh / etc是否可以报告无法生成会话来帮助诊断问题?

Answers:


1

所以,在我的具体情况,我留下了screen开放运行gdb连接到试图重现一个问题客户为具有与我们的产品生成过多线程的过程。很显然,该问题已在一夜之间重现,并且我的用户已达到系统的用户线程限制。

因此,由于进程和线程限制,sshd无法在我的用户下生成新进程。最终,我们所要做的就是用不同的用户登录并杀死我跑步screengdb和这个进程被调试。这释放了进程和线程资源,使我终于可以重新连接。


-1

此处详细介绍了另一种解决方案:https : //access.redhat.com/solutions/30316

我开始遇到同样的问题,在调查期间,我让另一个用户尝试以su作为用户。他得到了导致我转到上面链接的错误(无法设置用户ID:资源暂时不可用)。我确实超出了用户的允许线程限制,并且增加该限制使我可以再次登录。

基本上,对您的用户运行此命令(这是该用户的当前活动线程数):

ps -u testuser -L | wc -l

如果结果大于该用户在/etc/security/limits.d/90-nproc.conf中设置的限制(默认值为1024),则无需增加该限制。您将需要与尚未超过其限制的另一个用户进行此操作(或以某种方式终止某些线程才能登录)。

要增加它,只需添加与现有行相似但针对您的用户的行:

testuser   soft    nproc     2048

我知道这是一个老问题,但这可能会对遇到此问题的人有所帮助。


1
请避免发布仅链接的答案。链接可能会及时断开,从而使该答案对其他访问者无效。请在答案中包括实际解决方案。
mtak
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.