You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加ServerAliveInterval 600后仍遇SSH Broken pipe错误求助

解决SSH闲置触发Broken Pipe断开的问题

排查与修复步骤

  1. 先验证临时配置是否生效
    你当前的~/.ssh/config全局配置可能没生效,先直接用带参数的SSH命令测试:

    ssh -o ServerAliveInterval=600 -p 2220 bandit12@bandit.labs.overthewire.org
    

    如果这么连之后闲置不会断开,说明你的~/.ssh/config可能有语法问题——比如空行干扰、拼写错误,仔细检查ServerAliveInterval的拼写,确保配置项前面没有多余的特殊字符。

  2. 补充ServerAliveCountMax配置
    只设ServerAliveInterval有时候不够,默认SSH会在3次心跳无响应后断开。可以在配置里加上重试次数:

    Host *
        ServerAliveInterval 600
        ServerAliveCountMax 5
    

    这样会尝试5次心跳,减少因单次网络波动导致的断开。

  3. 开启TCP层面的Keepalive
    远程服务器的sshd_config没设ClientAliveInterval,但系统级的TCP Keepalive可能设得很短(比如60秒),直接强制断开闲置连接。你可以在本地SSH配置里开启TCP Keepalive:

    Host *
        ServerAliveInterval 600
        TCPKeepAlive yes
    

    双管齐下,同时用SSH应用层心跳和系统TCP心跳。

  4. 给目标主机单独配置更激进的心跳
    全局配置可能优先级不够,或者直接给bandit服务器单独写配置,缩短心跳间隔:

    Host bandit12
        HostName bandit.labs.overthewire.org
        Port 2220
        User bandit12
        ServerAliveInterval 30
        ServerAliveCountMax 10
    

    之后直接用ssh bandit12连接就行,30秒一次心跳基本不会触发闲置断开。

内容的提问来源于stack exchange,提问作者Ukpa Uchechi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 12:52:36