vscode支持ssh远程开发
文章目录
- 一、生成ssh使用的公钥/密钥对
- 二、使用vscode通过ssh连接服务器
- 1.安装插件
- 2.配置文件
- 3.连接服务器
- 4.新建文件夹,存放不同的任务
- 5.为不同的项目选择不同的conda环境
- 三、使用scp命令与服务器互传文件、文件夹
- 1.检查Windows 系统是否支持scp命令
- 2.在Windows系统本地的电脑向服务器传输文件、文件夹
- 3.在服务器向Windows系统本地的电脑传输文件、文件夹
- 四、FileZilla使用密钥文件连接linux服务器,上传文件
- 1.下载并安装FileZilla
- 2.使用私钥文件配置站点管理器
- 3.上传文件或文件夹
- 五、远程使用服务器运行程序
- 1.通过vscode编辑、调试代码
- 2.使用nohup命令运行程序
- 2.1 运行程序
- 2.2 停止运行程序
- 2.3 查看日志信息
一、生成ssh使用的公钥/密钥对
vscode通过ssh连接服务器实现免密登录+删除(吐血总结)
二、使用vscode通过ssh连接服务器
1.安装插件
2.配置文件
此时应该已经在生成密钥对时就配置好了,
Host <服务器的名字>
HostName <服务器的ip>
User <ssh登录的用户名>
Port <端口号>
IdentityFile <私钥所在地址>
配置好后就可以直接在cmd窗口中输入以下命令,远程登录服务器
ssh <服务器的名字>
3.连接服务器
右击服务器,我选择在新窗口连接。
如果之前在生成密钥对时,设置了密码会要求填写密码。
新窗口如下,按步骤操作可以看到服务器的文件架构。
4.新建文件夹,存放不同的任务
在前面的图片中,选择确定。
选择第二个图标,新建文件夹Workspace
5.为不同的项目选择不同的conda环境
点击框中的内容,切换项目所在的conda环境,当前就在base环境中。
三、使用scp命令与服务器互传文件、文件夹
1.检查Windows 系统是否支持scp命令
在cmd窗口检查Windows 系统是否支持scp命令
2.在Windows系统本地的电脑向服务器传输文件、文件夹
- 上传文件
scp 本地文件的filename 远程服务器的用户名@远程服务器的ip:远程服务器的目标目录
- 上传文件夹
scp -r FolderName RemoteUserName@RemoteHostIp:RemoteFolder
3.在服务器向Windows系统本地的电脑传输文件、文件夹
- 下载文件
scp RemoteUserName@RemoteHostIp:RemoteFile FileName
- 下载文件夹
scp -r RemoteUserName@RemoteHostIp:RemoteFolder FolderName
四、FileZilla使用密钥文件连接linux服务器,上传文件
1.下载并安装FileZilla
FileZilla客户端的安装配置教程以及使用教程(超级详细)
2.使用私钥文件配置站点管理器
3.上传文件或文件夹
在服务器窗格中选好目标位置。在本地窗格中选择要上传文件或文件夹,选中右击,点击上传,就可以上传到服务器的目标位置。
五、远程使用服务器运行程序
1.通过vscode编辑、调试代码
此时,我已经利用FileZilla把项目文件夹,上传至Workspace中。在资源管理器中打开main.py,就可以远程编辑代码了,对修改、调试程序代码非常方便。
缺点:当本地关闭vscode程序或断网,会影响服务器上代码的运行。如果想24小时运行程序,建议使用nohup命令。
2.使用nohup命令运行程序
2.1 运行程序
nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下(Linux nohup 命令)。
我比较喜欢使用下面的命令运行py文件,它会把报错信息、print函数输出的信息都重定向输入到 logfile.log 文件中。方便我们根据报错信息,后续修改代码。nohup.out文件也包含logfile.log中的信息,但是它包含多个py文件运行输出的信息。建议还是每个需要运行的py文件,对应一个logfile.log文件。(第一次通过服务器远程跑代码)
(base) username@lthpc:~/Workspace/project name/code$ nohup python -u main.py > logfile.log 2>&1 &
该代码返回一个进程号PID,如
[1] 1651179
2.2 停止运行程序
kill -9 进程号PID
2.3 查看日志信息
显示nohup.out或logfile.log文件的最后10 行内容
tail -f nohup.out
tail -f logfile.log