使用VS Code连接远程服务器并调试代码
之前一直使用Xshell远程连接实验室服务器,本地调试好代码后放上去跑,但感觉非常麻烦,所以对VS Code的插件部分做了一波探索,记录如下
VS Code 插件安装
- 在VS Code插件商店搜索ssh,并安装第一个名为"Remote-SSH"的插件,如下图
-
而后左侧边栏会出现图标,点进去,然后点击如下配置按钮
-
在弹出框中任意选择一个ssh的配置文件保存路径,一般选择第一个即可,而后就好跳转到一个新配置文件中,文件内容一般如下
-
其中Host 属性代表此ssh服务器的连接名称,定义自己能分辨各个服务器的名字即可;HostName 代表主机号,一般输入远程服务器的IP即可(这里我是乱写的);User 代表自己登录服务器的用户名;Port 代表登陆服务器的端口号,如果没有端口要求,可以不写这一项
-
配置完成保存退出即可,此时在之前SSH窗口处会出现以自己Host 名称命名的内容,右键即可弹出下述选择,可以本窗口打开连接也可以新窗口连接,任意选择即可
- 连接成功后,打开左侧竖边栏中的第一个按钮,即可看到以下界面,此处也会显示已连接到远程 ,点击打开文件夹,即可选择打开服务器上的文件夹
-
如果打开config文件后什么内容都没有,可以复制我这里的例子
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config Host BitCQ HostName 222.180.171.10 User hpc_cpu3100011 Port 12306 IdentityFile "C:\Users\Eric\.ssh\id_rsa"
-
大家可能会发现,最后一个IdentityFile 属性前面没有提到,它的出现是因为如果只按照前面的配置,我们在每次登录和打开文件 的时候都需要输入账号密码 ,这属实不太方便,所以大家可以按照下面的流程增加公私密钥,实现免密登录
增加公私密钥,实现SSH免密登录
-
利用cmd/终端生成密钥。打开终端,输入
ssh-keygen -t rsa -C "xx@qq.com"
,其中邮箱换成自己的任意邮箱即可,而后一直回车直至结束 -
而后打开自己电脑的
c:/user/Eric/.ssh/
路径,其中Eric 是我电脑的用户名,此处大家电脑的路径里应该是自己电脑的用户名,而后即可看到id_rsa
和id_rsa.pub
两个文件,其中.pub 结尾的为公钥 -
接下来打开
id_rsa.pub
文件将其中的内容复制下来,而后用输入密码的方式登入服务器,在服务器终端中输入vi ~/.ssh/authorized_keys
命令,进入文件会按键盘字母i 进入编辑模式,在文件最后回车,然后鼠标右键即可粘贴已复制的id_rsa.pub
文件中的内容,而后按esc ,输入:wq 即可退出编辑模式 -
而后重新按照前面讲述的步骤打开SSH的config文件,在文件末尾输入上述内容的最后一句,即
IdentityFile "C:\Users\Eric\.ssh\id_rsa"
,此处的路径直接写入自己的私钥文件id_rsa 文件的实际所在路径即可 -
保存退出,至此,全部配置完成,可以在VSCode上愉快的访问远程服务器端的文件了
代码调试
- 此时使用VS Code打开代码文件,右下角可能会弹出一些插件未安装的提示,这是由于VS Code需要在服务器端按照运行和调试环境,所以不用担心,按要求全部安装即可
- 而后的代码调试就和本地一样了,可以放心Coding
连接后可能出现的问题
- 我在连接后出现了qsub 命令不可用的问题,经在原始XShell 中检测,发现XShell中是可用的,故猜测是环境变量未配置,因此可在XShell 中使用
which qsub
命令查找qsub的工作路径,将其记录下来 - 而后在VSCode终端中输入
echo $PATH
命令,发现此路径确实没在环境变量中 - 接下来打开
~/.bashrc
文件,在其中添加一行export PATH=$PATH: ***
,其中*号代表第一步得到的qsub 路径,此处只需写到 bin 目录即可 - 最后在命令行中输入
source ~/.bashrc
即可使用qsub 命令了