如何在VSCode中重新连接SSH远程连接且保留进程?
VSCode SSH断连后保留进程恢复的解决方案
一、即时恢复连接(不丢失进程)
- 直接用VSCode内置重连功能:打开左侧远程资源管理器,找到已断开的远程主机,右键选择「Connect to Host in Current Window」;或者点击底部状态栏的远程连接图标,选择重新连接当前主机。这个操作不会重启远程端的VSCode服务,之前运行的终端进程、变量状态都会完整保留。
- 快捷键操作:按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac)打开命令面板,搜索「Remote-SSH: Connect to Host」,选中之前断开的主机,即可在当前窗口恢复连接,进程不受影响。
二、修改SSH配置根治频繁断连
如果频繁出现自动断连,调整SSH的心跳配置就能解决问题:
- 本地
ssh_config文件(Windows路径为C:\Users\<你的用户名>\.ssh\config,Linux/Mac路径为~/.ssh/config),给目标远程主机添加以下配置:
Host <远程主机名/IP> ServerAliveInterval 30 ServerAliveCountMax 10
ServerAliveInterval:每30秒向远程主机发送一次心跳包,维持会话活性ServerAliveCountMax:连续10次未收到回应才断开连接,避免网络波动导致误断
- 远程主机的
sshd_config文件(通常位于/etc/ssh/sshd_config),添加或修改以下内容:
ClientAliveInterval 30 ClientAliveCountMax 10
修改完成后重启远程主机的SSH服务:sudo systemctl restart sshd(Linux系统)
三、避坑提醒
- 绝对不要使用「Reload Window」功能,该操作会重启本地VSCode并重新加载远程服务,之前的进程、变量会全部丢失。
- 如果重连后终端无响应,直接按
Enter键即可唤醒会话,后台进程其实一直在正常运行。
内容的提问来源于stack exchange,提问作者Franco Riottini
相关产品推荐
相关产品推荐

