VScode 远程连接服务器调试代码
在深度学习训练模型时经常需要在服务器上跑代码,在租用的服务器上基于终端不便进行代码调试,而使用远程桌面控制部署也相对麻烦。pycharm 则需要专业版才能进行远程开发,一番周折之后最终选择利用 VScode 来进行远程代码调试。本文用于记录在部署过程中遇到的一些问题。🤔
1 远程服务器
这里本人使用 autoDL 平台租用服务器,平台提供了多种类型的 GPU
,而且价格也相对合理。平台链接如下:
AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL
若想要使用平台在首页根据帮助文档操作即可,文档的教程很详细。
2 VScode 本地配置
SSH 连接配置
在 VScode Extensions:MarketPlace 中搜索 Remote Development 找到对应扩展后下载。同时会自动下载依赖的一些扩展。
下载好扩展后,开始进行相应的配置,先点击左下角 Open a Remote Window,再选择 Remote-SSH 连接。
然后选择 Add New SSH Host
这时候我们需要填入 SSH 连接指令,
在 AutoDL 控制台将租用的容器实例开机,在 SSH 登录处可以复制 SSH 指令和密码。这里我没有开机所以看不到😉。
将复制的 SSH 指令填入后按回车即可。然后再复制密码输入远程主机的密码建立回车连接即可。
这里我连接时遇到了一点小问题,如果没有遇到可以直接跳过。
这里我远程服务器已经开机但是任然无法和服务器建立连接。需要再进行相关的配置
在扩展中找到 Remote-SSH 扩展,右键后点击进入 Extension Settings,将 SSH 的 Conifg 文件路径写入。
这里的 Config 文件我们可以在前面 Add New SSH Host 时进行配置。
这里我选择了第一个配置文件,所以就将该配置文件的路径写入。
设置好路径后再连接远程服务器即可成功连接。
DeBug 环境配置
在远程主机安装 Python 和 Jupyter 扩展
安装好扩展后配置 python 解释器
完成配置后即可以运行代码(服务器已经部署好相关环境,已安装好所需要的包…)
DeBug,选择 DeBug 配置
设置断点调试
以上就已经完成了通过 VScode 远程连接服务器调试代码😁。
3 为远程服务器下载扩展可能遇到的问题
本人在为远程服务器下载扩展时下载巨慢,最后还不能成功安装…😵 不知道具体是什么原因所以只好采用离线安装的方法。
下载vscode插件
进入VScode插件市场网址下载所需要的插件
All categories Extensions - Visual Studio Code
这里主页就有我们需要的插件,点击进入插件页面,往下翻找到 Download Extension
这时候我们会得到一个 .vsix
文件,将该文件上传至服务器,在 vscode 扩展右上角点击三点选择 install from VSIX…
找到文件所在的路径安装即可
这时候不出意外会遇到以下报错… 哈哈哈哈,问题是真的多😰
只好慢慢解决哩…
先修改 .vsix
文件的后缀为 zip
,使用解压软件打开
在 extension 文件夹中找到 package.json
文件 ,用记事本打开
找到 "engines":{"vscode":"^1.83.0"}
修改版本号为刚才报错提示的版本号。
修改后保存,确认修改。(这里不要直接解压后然后修改,再将文件压缩,再修改文件后缀为 vsix
,这样安装后扩展是灰色的,任然不能使用。应该在压缩文件中修改然后保存,再修改文件后缀为 vsix
,emmm,至于为什么我也不太清楚,挺玄学。开始我遇到这问题然后在知乎评论看到得这样操作然后就OK了…🤔)
然后再修改回 vsix
文件后缀重新上传安装即可。
大功告成 ! 大功告成~! 大功告成 ! 😀
4 其他
设置 SSH 免密登录
每次登录都要输密码怪麻烦的,所以想要设置免密登录🥲
首先在本地生成 ssh 公钥和私钥
在 git bash 或者 cmd 中输入
ssh-keygen
然后一直回车即可,这里我之前生成过所以我直接覆盖了之前的(最好不要直接覆盖哈哈哈,可以改个名 eg:test_rsa
)
生成的公钥在 /C/Users/XXX/.ssh
文件夹下
autoDL 主机设置 SSH 免密登录操作请跳转至 autoDL
将 id_rsa.pub
文件上传至服务器根目录 .ssh
文件夹下
# 切换到 .ssh 文件夹下
cd .ssh
# 将公钥内容复制到 authorized_keys 文件中
cat id_rsa.pub >> authorized_keys
# 修改文件权限
sudo chmod 600 authorized_keys
# 重启 ssh 服务
service ssh restart
autoDL 服务器可以直接添加 SSH 公钥,较为方便😋
在容器实例点击设置密钥登录,然后添加 SSH 公钥即可,就是将前面生成的 id_rsa.pub
文件中的内容复制过来即可。
配置好后就不需要每次都打密码啦~!
本地上传文件至服务器
本人使用 FileZilla 来上传文件,基于 SSH
连接和 SFTP
协议,传输文件较为方便,但是有点点慢慢…应该是文件加密计算量大😴
具体有关 AutoDL 配置 SSH,FileZilla 等可以参考其帮助文档,里面都有相对详细的介绍。
折腾了这么就终于给搞定咯。文章到此就结束哩,感觉写得逻辑有点混乱,…😫
参考
- VSCODE远程连接深度学习服务器教程 - 知乎 (zhihu.com)
- 使用vscode进行远程炼丹 - 知乎 (zhihu.com)
- vscode设置remote-ssh并免密登录_vscode ssh 免密-CSDN博客
- VSCode远程连接服务器报错:Could not establish connection to “xxxxxx”【已解决】-CSDN博客
- vscode下链接远程服务器安装插件失败、速度慢等解决方法_vscode远程安装不上扩展_Emphatic的博客-CSDN博客
- VScode离线安装插件,以及安装插件失败问题 - 知乎 (zhihu.com)
- VS Code離線安裝插件報錯Unable to install extension ‘dart-code.flutter’ as it is not compatible with VS Code ‘1.51.1’. - 糖~豆豆 - 博客园 (cnblogs.com)
- AutoDL帮助文档