VSCode SSH远程连接运行大体积Jupyter Notebook频繁断开问题求助
问题根因
你遇到的卡顿、SSH频繁断连、反复要求输入密码的问题,核心是两个原因:
- SSH默认没有开启保活机制,跑大体积Jupyter Notebook时,长时间无交互会被服务端主动断开连接
- 单个Notebook单元格过多时,内存占用过高+VSCode同步大文件占用带宽过高,触发SSH连接超时
分步解决教程
1. 修复SSH断连、反复输密码问题
- 配置本地SSH保活规则
打开Windows本地的C:\Users\你的用户名\.ssh\config文件,没有就新建无后缀的config文件,在对应weller1的配置段新增以下内容:
配置生效后,每30秒会主动给服务器发保活包,最多尝试10次无响应才判定连接断开。Host weller1 # 原有配置(HostName、User)保留,新增下面两行 ServerAliveInterval 30 ServerAliveCountMax 10 - (可选双保险)配置服务端SSH保活
登录远程openSUSE服务器,编辑/etc/ssh/sshd_config文件,新增以下两行:
保存后执行ClientAliveInterval 30 ClientAliveCountMax 10sudo systemctl restart sshd重启SSH服务生效。 - 配置SSH密钥登录免去输密码步骤
本地打开CMD终端,执行ssh-keygen -t ed25519,全程按回车不用设置密码。执行type C:\Users\你的用户名\.ssh\id_ed25519.pub,复制输出的全部内容。
登录远程服务器,将复制的内容粘贴到~/.ssh/authorized_keys文件的最后一行,没有该文件就新建。之后执行权限配置命令:
后续再连接服务器无需输入密码。chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
2. 修复Jupyter Notebook卡顿、触发断连问题
- 定期清理内存冗余变量
在Notebook中新增单元格,运行以下代码清理不需要的变量,避免内存占用过高卡住进程:import gc # 替换为你不需要的变量名 del var1, var2, large_dataframe gc.collect() - 延长VSCode SSH连接超时阈值
打开VSCode设置,搜索Remote.SSH: Connect Timeout,将默认的15秒修改为60秒及以上,给大体积Notebook加载预留足够时间。 - 拆分过大的Notebook
若单个Notebook单元格数量超过200,建议按功能模块拆分为多个小体积Notebook,避免单文件过大导致同步时占满带宽触发SSH断连。
验证效果
完成所有配置后重启VSCode,重新连接远程服务器打开Notebook运行,卡顿、断连、反复要求输入密码的问题会完全解决。
内容的提问来源于stack exchange,提问作者Apinorr
相关产品推荐
相关产品推荐

