PyCharm+ssh跳板机+服务器
文章目录
- PyCharm+ssh跳板机+服务器
- 准备工作
- 登录服务器
- 查看CUDA
- 查看conda
- 创建虚拟环境
- 前言
- 配置ssh免密登录
- 设置ssh隧道
- 配置pycharm
- 测试
- 第一种
- 第二种
- 传输数据
准备工作
登录服务器
直接ssh连接就行,在终端(命令行)直接输入下面命令:
- 跳板机:ssh 跳板机用户名@跳板机ip -p 端口号 密码:xxx
- 内网服务器:ssh 内网服务器用户名@内网服务器ip -p 端口号 -i 私钥文件
登陆后再 cd /data0/qiujielv 然后在下面创建一个文件夹里面放自己的代码。
查看CUDA
使用nvidia-smi
命令查看CUDA版本:
查看conda
服务器已经提前安装了conda,使用conda --version
命令查看conda版本:
如果没有安装conda,则还需要安装conda。
创建虚拟环境
这部分参考博客。
输入此条指令创建conda虚拟环境,可以自己更改名称和python版本:
conda create -n 自己输入名称 python=版本号
输入下行代码激活刚才创建的环境,主要名称要与之前创建时设置的名称相应:
conda activate 名称
例如我们输入conda activate lxl
激活刚才创建的虚拟环境:
需要在虚拟环境中重新安装包如jupyter,d2l,这部分跳到配置pycharm镜像源。
同样需要在虚拟环境中安装PyTorch。激活虚拟环境后进入PyTorch官网下载对应版本的pytorch(GPU版本),服务器是Linux,前面看到CUDA版本为11.4。
首先通过conda list
命令看到虚拟环境中没有安装pytorch:
下载对应版本的pytorch(使用pip或者conda命令都行,这里用了conda命令):
下载完成:
通过conda list
命令可以看到虚拟环境中安装了pytorch:
前言
pycharm连接内网服务器必须通过跳板机,这种情况下pycharm的配置则比较复杂,需要使用ssh免密登录和ssh隧道。如果不是内网服务器则pycharm配置比较简单。
下面介绍的都是pycharm通过跳板机连接内网服务器。
配置ssh免密登录
配置跳板机和服务器的免密登录,实现方式有多,这里只列出了一种方式。
- 在本地配置
到本地C:\Users\<Administrator>\.ssh
文件夹下找到config
文件(.ssh
文件夹没有,就新建个;config
文件没有,就新建个),在config文件中输入以下内容:
Host *
ControlPersist yes
ControlMaster auto
ControlPath ~/.ssh/%n:%p
同时,还需要在 config
文件中再添加如下内容:
Host <jump>
HostName <x1.x1.x1.x1>
User <xxx>
Port <xxx>
Host <remote>
HostName <x2.x2.x2.x2>
User <xxx>
Port <xxx>
ProxyCommand ssh -q -W %h:%p <jump>
这里的<jump>
是指跳板机,可以改成喜欢的名字,<x1.x1.x1.x1>
是跳板机的ip,User
、Port
都是登录跳板机的所提供的参数;<remote>
指服务器,也是命名而已,可以随便改,<x2.x2.x2.x2>
是服务器的ip,User
、Port
都是从跳板机登录服务器所提供的参数。把本地登录跳板机的秘钥都放到.ssh
文件夹中。
这里用的是GUI界面,当然也可以使用vim编辑器修改config
文件:
vim ~/.ssh/config
完成配置后在本地登录一次跳板机。
登录跳板机:直接打开命令行,输入 ssh 跳板机用户名@跳板机ip -p 端口号 。然后回车
- 登录跳板机,并在跳板机配置
vim ~/.ssh/config
在config文件中输入以下内容:
Host *
ControlPersist yes
ControlMaster auto
ControlPath ~/.ssh/%n:%p
完成配置后在跳板机上登录一次内网服务器。
登录内网服务器:
ssh 内网服务器用户名@内网服务器ip -p 端口号 -i 私钥文件
注意需要提前将内网服务器私钥文件放到 .ssh文件夹下。
设置ssh隧道
在本地命令行输入如下命令即可:
ssh -N -f -L 6000:<内网服务器ip>:22 -p <跳板机端口> username@<跳板机ip> -o TCPKeepAlive=yes
上述命令各个参数的含义如下:
- -N 告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发
- -f 告诉SSH客户端在后台运行
- -L 做本地映射端口
注意:
配置好SSH免密登录后开机便不必再进行配置了,但每次开机都需要重新设置SSH隧道(即在命令行输入上述命令)pycharm才能连接内网服务器。
此时,登录本地的6000端口就相当于登录内网服务器了。
ssh -p 6000 内网服务器用户名@localhost
配置pycharm
这里配置pycharm是通过跳板机连接内网服务器,而如果pycharm可以直接连接服务器则不需要这么麻烦。
下面配置python解释器(重要),首先激活自己的虚拟环境,然后通过conda env list
查看所有环境,*表示当前所在环境,记下当前虚拟环境python3.8解释器所在目录,配置pycharm时找到该解释器:
最终效果:
点击create,等待创建完成。
创建完成后,就通过pycharm连上内网服务器了,可以查看一下:
下面进行一些其他设置,前面提到创建完虚拟环境后需要在虚拟环境中重新安装包如jupyter,d2l。
下面在pycharm中配置镜像源:
测试
在pycharm中修改了代码可以手动上传同步至服务器,也可以设置为自动上传同步至服务器。
有两种方式运行代码:
第一种
激活环境后直接右键run运行即可:
运行结果:
第二种
在命令行使用指令运行:
同样新建一个连接:
传输数据
下载FileZilla,官网:https://filezilla-project.org/。
打开安装包,然后一路默认选项安装即可:
连接:
要传输数据只需要将自己电脑中的文件拖过来即可:
上述连接针对的是不需要跳板机的服务器。而如果是使用了跳板机的内网服务器则与配置pycharm一样,需要配置SSH免密登录,设置SSH隧道等。
前面配置pycharm时已经配置SSH免密登录,设置SSH隧道,这里就可以直接新建站点然后连接: