pycharm + ssh 跳板机 + 服务器

pycharm + ssh 跳板机 + 服务器

场景

在内网的本地通过在外网的跳板机(堡垒机)连接外网的服务器,希望调试、同步修改代码,避免出现: 使用pdb、print大法,本地修改代码再上传至服务器、出现bug再从服务器拉取下来,这些严重影响调试速度的情况。

步骤

1. ssh免密登录

参考: https://zhuanlan.zhihu.com/p/53792195,在本地的C:\Users\<Administrator>\.ssh的文件夹下建立config文件(.ssh文件夹没有,就新建个),然后在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 <local>

这里的<jump>是指跳板机,你可以改成喜欢的名字,<x1.x1.x1.x1>是跳板机的ip,UserPort都是登录跳板机的所提供的参数(注意不是随便填个22就完事的哦);<remote>指服务器,也是命名而已,可以随便改,<x2.x2.x2.x2>是服务器的ip,UserPort都是从跳板机登录服务器所提供的参数。把本地登录跳板机的秘钥都放到.ssh文件夹中,如下图所示。

在这里插入图片描述

然后在本地的shell(注意是shell不是windows的cmd,win的powershell或许也可以,没试过),尝试ssh <jump>,如果登录成功,说明本地 -> 跳板机的ssh隧道免密登录已经弄好了,接着是跳板机 -> 服务器的ssh免密登录,方法同本地一致:vim ~/.ssh/config,如果在跳板机上直接go <x2.x2.x2.x2>,那么恭喜你,本地 -> 跳板机的ssh隧道也搭建好了,不用再重新搭建了。

在这里插入图片描述
在这里插入图片描述

2. 隧道转发

参考: https://blog.csdn.net/qq_33039859/article/details/89503464的第7、8条,在shell里输入如下指令,进行ssh转发:

ssh -N -f -L <转发至本地的端口号, 随便起, 这里我是6000>:<x2.x2.x2.x2, 服务器ip>:<服务器端口> -p <跳板机端口> <登录跳板机的用户名>@<x1.x1.x1.x1, 跳板机ip> -o TCPKeepAlive=yes

3. pycharm的dev环境、解释器配置

注意 pycharm必须是Professional版才行

  • dev环境
    在这里插入图片描述
    在这里插入图片描述
    这里的ip是localhost,因为使用了ssh转发到了localhost的6000端口,按图填就好。
  • 解释器
    在这里插入图片描述
    可以create或者move,视情况而定。
  • 检查下
    在这里插入图片描述
    终于可以开心的调试了~

题外话

项目得全部下载后才可以调试,如果模型也放在项目文件里的话,一个模型也就1、2g吧,那这个下载同步就是灾难性的,项目初始化会是很慢很慢的。
在这里插入图片描述
所以有些时候,我用jupyter notebook来修改远程代码,这样要方便一些。

上述有误,实际上根本不用把整个项目都dump下来,可以按需dump对应代码。另外用jupyter notebook可以看看输出的图像,这点还是蛮方便的,现在我是全程用pycharm调试。

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值