pycharm 设置远程解析器和远程目录同步
目标:通过配置,使本地(一个局域网)机器上的pycharm进行远程开发。远程机器在另一个局域网中。有一个中转服务器(有外网IP)可以进行跳转,但是无法直接访问另一个局域网。如果你没有中转服务器,那么你可以考虑用内网穿透工具进行内网穿透。
本地先安装好openssh,下载地址OpenSSH,远程也都启动sshd监听对应端口,默认22
我本地机器需要访问的内网服务器,不能直接访问,需要通过一个网关服务器做跳板。
参考:
通过pycharm的SSH功能实现远程代码的调试和开发(使用远程开发环境,远程项目代码)
第一步,设置免密码登陆(不用每次连接输入密码)
可以使用ssh-keygen生成密钥对,将公钥发到服务器上,见末尾。参考openssh相关设置
或者在.ssh/config文件中写入(windows不知道怎么配置不成功,所以使用上面的方法)
跳板服务器上也要同样设置,因为要通过它转发到另一台机器上
ControlMaster 就是复用之前已经建立的连接。如果已经有一条连接,那么再连接的时候,就不需要再输入密码了。
ControlPersist 参数的含义就是在最后一个连接关闭之后也不真正的关掉连接,这样后面再连接的时候就还是不用输入密码。
Host *
ControlPersist yes
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p
第二步 设置ssh隧道
ssh -N -f -L 6000:<内网服务器ip>:22 -p <跳板机端口> username@<跳板机ip> -o TCPKeepAlive=yes
-N 告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发
-f 告诉SSH客户端在后台运行
-L 做本地映射端口
关于SSH建立管道参考
比如我要连接的内网服务器ip是192.168.1.6。跳板机ip是200.200.100.100,sshd监听端口是22 , 用户名是kd。本地要映射的端口是6666,命令就是
ssh -N -f -L 6666:192.168.1.6:22 -p 22 kd@200.200.100.100 -o TCPKeepAlive=yes
执行命令后让它保持后台运行的状态,我们就可以用ssh -p 6666 username@localhost访问内网服务器了。username是内网的用户名
第三步 配置pycharm远程开发目录

这里的root path是远程服务器的起始位置,你可以设置成你的home用户目录,这里设置成根。
mapping设置目录映射,将本地的目录和远程的目录对应起来。

设置好以后就可以从服务器下载代码,和上传代码了。可以设置自动上传
第四步 设置远程解析器



这里的path mapping直接不用设,从之前配置的远程开发环境导入即可。如果你要配置,那么这里的目录是以你之前设的那个pathroot为前缀的,也就是你设置的目录,pycharm会给你加上那个path root前缀。

其他上传设置参考
密钥对免密登录
利用本地的ssh-keygen生成密钥对。然后将公钥放到你的用户目录的.ssh/目录下,改名为authorized_keys。将.ssh权限设为700,authorized_keys权限改为600或者644。这时候修改配置,更改授权方式为密钥对。这里会遇到一个问题,就是私钥格式不对,要转成SSH2格式

更改方式,利用命令
ssh-keygen -e -f rsa_ssh > rsa_ssh2
将rsa_ssh转换成rsa_ssh2。
如果还是一样的错误,我是利用Xshell进行转换

你先导入你要转换的那个私钥,然后导出,选择格式

然后在pycharm中使用这个私钥即可
这样就可以

更多推荐



所有评论(0)