社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
最近博主在帮老师做项目,因为更习惯使用windows系统,平常没少花时间在配置环境上。在linux环境安装各类环境库的方便程度要远远高于window环境下,但是每次都要在远程连接服务器或者打开虚拟机未免有些不方便。所以,通过pycharm自带的ssh连接功能,可以在windows环境下直接调用linux系统配置好的python环境,省去了各种各样的问题。
(1)准备好pycharm专业版,社区办没有远程连接服务器的功能(学生的话可以使用edu邮箱申请1年免费使用)
(2)一个装有ubuntu或者centos的服务器、虚拟机(并且安装完常用的库,诸如vim,make等)
因为是使用Windows下的软件来访问linux,所以Linux下不需要安装openssh的客户端
首先启动docker镜像,创造一个新的容器,并在该容器中安装ssh-server
(base) root@dd53ea4c2f2b:/# yum install openssh-server
# 安装ssh-server,之后检查ssh-server是否安装成功
(base) root@dd53ea4c2f2b:/# service ssh start
# 有时候是 service sshd start (如果上面不成功则输入下面的)
出现下面的文字说明启动成功
接下来,设置ssh-server自动启动
echo 'service ssh start'>>~/.bashrc
随后,为ssh登录设置一个密码,这里密码暂定为123,请牢记你的密码,同时,用户名默认为root,我自己设置的是admin。
(base) root@dd53ea4c2f2b:/# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
使用命令vim /etc/ssh/sshd_config,在文件最後面添加以下
PermitRootLogin yes #允許root用户使用ssh登錄
如果没有安装vim,使用如下命令安装
yum install vim
echo ':set term=builtin_ansi' >> /usr/share/vim/vimrc
# 第二行如果不加的话会出现在vim中方向键使用失灵的情况
重啟ssh服務
/etc/init.d/ssh restart
(注意,每次服务器重新启动,需要重新启动一次ssh,pycharm才能连接到服务器)
查看服务器的ip地址,inet后面的就是自己的外部ip
(base) [root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet (your ip) netmask 255.255.255.0 broadcast (xxxxxxxx)
inet6 fe80::46fc:602:59c3:ac4d prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:0c:b6:2c txqueuelen 1000 (Ethernet)
RX packets 5158526 bytes 7612328144 (7.0 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 534088 bytes 169710625 (161.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
打开pycharm,点击工具栏上面的Tool,找到Deployment选项
进入界面后,点击左上角的+号
新建SSH Configuration
host输入的服务器的远程ip,port是ssh的端口,默认为22,username就是用户的名称,默认为root,passwd就是刚刚设置的密码123。
点击test connection,连接成功
选择刚刚创建好的SSH Configuration后,点击上方的Mapping,选择映射路径
local path指的是宿主机需要映射的文件夹,Deployment 指的是远程服务器需要映射的文件,连接成功后我们可以在两个文件夹之间进行文件的传输。
设置好之后,可以看到在服务器上面映射的文件夹呈现为绿色。
如果想要进行文件传输:
(1)宿主机传输文件至服务器
此时我们从记录可以看到program文件夹传输至服务器内
(2)服务器传输文件至宿主机
此时从服务器上传输了PEKS这个文件夹到宿主机
将宿主机与服务器通过SFTP进行连接后,我们还需要调用服务器的语言环境
打开setting,点击SSH Interpreter,选择之前已经配置好的SSH confirmation
下面这一步比较复杂,大家可以结合实践多试试,在Interpreter中设置你的Python环境安装路径,不确定的话有两种方式:
(1)whereis python # 展示环境中安装所有python的目录
(2)which python # 展示目前环境变量中使用的python目录
Sync folders中填写本地要和docker容器中哪个文件夹建立联系,因为pycharm远程的原理是将远程的Py文件下载到本地修改(在远程进行修改和调试后,再从服务器端下载回来也一样),然后在运行和调试时发送到远程去执行。注意,这里的远程和本地分别置服务器和宿主机。(仔细看路径,还记得我们将本地的文件夹映射到了/home/admin/program路径么,所以这里其实处理的是本地的程序)
(下方的自动上传我个人认为应该取消,因为可能会自动覆盖文件,每次在云端修改时,手动进行覆盖即可)
我们右键绿色的文件夹,选择Sync with local,他会扫描本地与远程的差异,见下图
因为只需要同步py文件,因此在Filter中输入*.py,之后点回车,在点击绿色的快进号(两个三角形),本地的py文件就下载好了。
无法找到该文件的位置,此时我们需要修改该文件的工作位置
代码所在的目录前面有一连串的标识符指代该服务器,但是不知道为什么pycharm无法识别,所以我们需要将< >内的内容删去。同时修改工作目录, 指的是根目录,所以无法读取想要的pcap文件。修改后如图:
此时再次运行代码就可以执行程序了(设置的目录在/home/admin/program下,读取AI文件夹内的文件)
因为我们没有点击自动上传的选项,所以每次修改代码都需要自行上传,点击右上方即可
或者选择自行上传
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!