pycharm通过ssh连接远程服务器教程


Posted in Python onFebruary 12, 2020

由于想要使用pycharm连接Window子系统Ubuntu进行开发,找了很多教程都不够详细,花了点儿时间,最后配置成功。

将pycharm连接Window子系统的配置过程总结如下,连接其它远程服务器的过程相同:

一、Ubuntu配置

1、首先安装 ssh server:

> sudo apt-get install openssh-server

2、修改 ssh server 配置:

> sudo vim /etc/ssh/sshd_config

需要修改以下几项:

Port 2222 #默认的是22,但是windows有自己的ssh服务,也是监听的22端口,所以这里要改一下
UsePrivilegeSeparation no
PasswordAuthentication yes
AllowUsers youusername # 这里改成你登陆WSL用的用户名

3、启动 ssh server:

sudo service ssh --full-restart

4、使用xshell测试是否可以连接到子系统:

xshell 登陆 ubuntu on windows 的配置如下:IP 是 127.0.0.1,端口号2222,身份验证信息填写子系统的用户名和密码,即可成功登录。

pycharm通过ssh连接远程服务器教程

注:需要注意一点,ubuntu 的命令行窗口不能关掉,关掉后 sshd 服务也会关掉,连接就断开了。

二、配置 Pycharm 服务器

1、确定服务器 IP 地址(连接子系统IP地址为127.0.0.1),确保已经开启 SSH 服务,并且安装了 Python,本地 Project 名为 recommodation_system;

2、配置 Pycharm 服务器的代码同步,打开 Tools -> Deployment -> Configuration,点击左边的 + 添加一个部署配置,输入配置名 Name,Type 选择 SFTP,然后确认;

3、配置远程服务器的 IP,端口,用户名和密码,Root Path 是项目文件在远程服务器中的根目录,根据需求配置,例如 /home/rs,这个目录需要登录用户的创建权限(配置好服务器参数,直接点击右侧Autodetect会自动生成Root Path);

4、点击 Mappings,将 Local Path 设置为 Windows 下的工程目录,例如 D:\GitHub\ recommodation_system,自己视情况设定。将 Deployment path on server 设置为远程服务器中的项目目录,例如 /ML,注意目录前要加 /,不然后面运行程序会找不到文件,Web path on server 暂时不用设置,貌似 Web 相关的程序会用到,需要用到的话请自行 Google;

5、点击 Excluded Paths 可以设置一些不想同步的目录,例如软件的配置文件目录等。

6、另外打开 Tools -> Deployment -> Options,将 Create Empty directories 打上勾,要是指定的文件夹不存在,会自动创建。

三、Pycharm 远程连接远程服务器

1、选择 File -> Settings,选择 Project -> Project Interpreter,然后在右边,点击那个小齿轮进行设置;

2、点击 Add Remote,选择 SSH Credentials,填写主机的 SSH 配置信息,Python interpreter path 选择自己需要的远程服务器的解释器(选择需要的python版本),如下;

pycharm通过ssh连接远程服务器教程

3、选择配置好的远程服务器,Path mappings与第二部分第4个步骤中的路径映射关系对应即可(由于刚开始这一步没配置好,运行时一直找不到文件,其实就是要把本地文件Upload到服务器的对应地址,才能在服务器运行),可以看到已经读取到远程服务器的Package,如下:

pycharm通过ssh连接远程服务器教程

4、运行程序前,进入Tools -> Deployment,选择Automatic Upload(always),这样本地编辑程序后,会自动上传到服务器,以免本地文件与服务器文件不一致,导致运行出错;

5、运行程序时,也就是点击 Run 的时候选择刚刚配置的解释器就能远程调试了,基本跟使用本地解释器没有什么区别。

以上这篇pycharm通过ssh连接远程服务器教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python两种遍历字典(dict)的方法比较
May 29 Python
Python实现类继承实例
Jul 04 Python
python基础教程之自定义函数介绍
Aug 29 Python
对python中的six.moves模块的下载函数urlretrieve详解
Dec 19 Python
在python里协程使用同步锁Lock的实例
Feb 19 Python
python调用其他文件函数或类的示例
Jul 16 Python
Python浮点数四舍五入问题的分析与解决方法
Nov 19 Python
浅谈TensorFlow之稀疏张量表示
Jun 30 Python
keras训练浅层卷积网络并保存和加载模型实例
Jul 02 Python
cookies应对python反爬虫知识点详解
Nov 25 Python
python的变量和简单数字类型详解
Sep 15 Python
基于Python实现股票收益率分析
Apr 02 Python
python日期与时间戳的各种转换示例
Feb 12 #Python
Python使用uuid库生成唯一标识ID
Feb 12 #Python
将python文件打包exe独立运行程序方法详解
Feb 12 #Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
Feb 12 #Python
Python sep参数使用方法详解
Feb 12 #Python
Python多重继承之菱形继承的实例详解
Feb 12 #Python
Python实现桌面翻译工具【新手必学】
Feb 12 #Python
You might like
PHP 模拟$_PUT实现代码
2010/03/15 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
python reverse反转部分数组的实例
2018/12/13 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
Python解析json代码实例解析
2019/11/25 Python
Python&&GDAL实现NDVI的计算方式
2020/01/09 Python
python实现简单飞行棋
2020/02/06 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
python IP地址转整数
2020/11/20 Python
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
波兰最早的运动鞋精品店之一:Street Supply
2019/08/29 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
大学生村官工作感言
2014/01/10 职场文书
党员个人总结范文
2015/02/14 职场文书
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android
简述Java中throw-throws异常抛出
2021/08/07 Java/Android