VSCode通过SSH连接服务器报错“ssh fork: retry: No child processes”求助
解决VSCode SSH连接报错“ssh fork: retry: No child processes”及终端阻塞问题
1. 调低VSCode SSH扩展的重连次数
VSCode Remote-SSH默认的并发重连逻辑过于激进,容易打满服务器进程配额:
- 打开VSCode设置(快捷键
Ctrl+,/Cmd+,) - 搜索
remote.SSH.maxReconnections,将值改为3 - 搜索
remote.SSH.connectTimeout,设为10000(10秒),减少频繁重试的概率
2. 清理服务器上的VSCode残留进程
连接失败后,服务器会残留大量僵死的code-server或ssh子进程,直接占满可用进程数:
- 登录服务器后执行以下命令清理进程:
pkill -f "code-server" pkill -f "vscode-server" - 嫌手动操作麻烦的话,可以写个简单脚本,每次连接前自动执行清理
3. 检查服务器的进程数限制
服务器单个用户的进程数上限过低,也会导致无法创建新进程:
- 登录服务器后执行
ulimit -u,查看当前用户的最大进程数 - 如果数值低于1024,编辑
/etc/security/limits.conf文件,添加或修改:你的用户名 soft nproc 2048 你的用户名 hard nproc 4096 - 保存后重新登录服务器,设置即可生效
4. 关闭SSH代理/转发功能
代理转发或X11转发可能干扰进程创建逻辑:
- 打开本地
~/.ssh/config文件,在对应服务器的配置条目里添加:ForwardAgent no ForwardX11 no - 或者在VSCode设置中搜索
remote.SSH.enableAgentForwarding,取消勾选
5. 更新VSCode及Remote-SSH扩展
旧版本的扩展存在进程管理bug,直接更新到最新版本即可修复:
- 在VSCode扩展市场找到
Remote - SSH,点击更新按钮 - 同时确保VSCode本体也是最新版本,避免兼容性问题
内容的提问来源于stack exchange,提问作者BagMan
相关产品推荐
相关产品推荐

