使用pycharm、跳板机连接内网服务器

接手实验室服务器后,大部分同学在GPU集群上跑程序都是直接在ssh界面上跑,这里想着通过pycharm通过跳板机来连接服务器。

总体就是实验室服务器仅限内网访问,同时实验室也提供了一个跳板机,可以先ssh到跳板机再从跳板机ssh到内网服务器。然而这种方式不方便传输文件,也没法用pycharm进行自动同步代码或者远程调试。本篇文章给出了一个该类问题的解决方案,即通过ssh隧道的方式,用Pycharm通过跳板机连接内网服务器。

步骤一 配置免密登录

一般情况下,GPU集群都是配置过免密登陆的,所以这个步骤一般是忽略的。

在本地配置

vim ~/.ssh/config

在config文件中输入以下内容

Host *

ControlPersist yes

ControlMaster auto

ControlPath ~/.ssh/%n:%p

完成配置后在本地登录一次跳板机.

登录跳板机,并在跳板机配置

vim ~/.ssh/config

在config文件中输入以下内容

Host *

ControlPersist yes

ControlMaster auto

ControlPath ~/.ssh/%n:%p

完成配置后在跳板机上登录一次内网服务器。

步骤二 设置ssh隧道

在本地命令行(win10一般是 powershell)输入如下命令即可:

ssh -N -f -L 6000::22 -p username@ -o TCPKeepAlive=yes

比如我的:

ssh -N -f -L 6000:11.11.11.3:22 -p 22 jim@**.**.**.** -o TCPKeepAlive=yes

上述命令各个参数的含义如下:

-N 告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发

-f 告诉SSH客户端在后台运行

-L 做本地映射端口

关于SSH建立管道参考

此时,登录本地的6000端口就相当于登录内网服务器了。

ssh -p 6000 服务器用户名@localhost

步骤三 配置pycharm

配置pycharm

这里只需配置ip为127.0.0.1, 端口为6000,并输入内网服务器的账号密码即可看到服务器安装的python.

具体配置方式参考

步骤四(可选)使用corn 定时维护ssh 隧道

SSH 隧道可能因为网络不稳定而断开,每次断开之后都需要手动再次建立SSH 隧道。下面介绍一种解决方案,通过cron定期执行脚本来维护SSH隧道畅通:

编写脚本,通过判断socket文件是否存在来判断隧道连接是否已经断开

在本地任意位置创建脚本auto_connect.sh并写入如下内容(注意更换<>中内容)

#/usr/bin/env sh

if [[ ! -a "~/.ssh/:" ]]; then

echo "connecting : .."

ssh -N -f -L 6000::22 -p username@ -o TCPKeepAlive=yes

if [[ $? -ne 0 ]]; then

echo "failed to connect :" >&1

exit 2

fi

fi

使用cron服务定时执行脚本建立ssh 隧道。在命令行中执行如下语句:(注意修改脚本位置, 路径不可用缩写)

echo "0-59 * * * * sh /path/to/auto_connect.sh" > ~/.crontab

crontab ~/.crontab

本部分参考这里, 使用cron服务定时执行脚本参考这里

Reference

整体文章

python通过跳板机连接服务器_使用pycharm、跳板机连接内网服务器相关推荐

  1. 使用跳板机在Pycharm上配置内网服务器

    使用跳板机在Pycharm 上使用内网服务器环境 ​ 最近遇到一个问题:实验室服务器仅限内网访问,无法在家(外网)访问实验室的所有内部服务器,但同时实验室又提供了一个外网可以访问的跳板机,虽然可以先s ...

  2. 公网如何SSH远程连接内网服务器

    公网如何SSH远程连接内网Linux服务器 文章目录 公网如何SSH远程连接内网Linux服务器 1. 注册cpolar账号 2. 安装配置cpolar内网穿透 2.1 安装客户端 2.2 进行tok ...

  3. iptables设置映射通过外网端口代理ssh登录内网服务器

    一.环境阐述 环境介绍:现有一台搭载数据库的内网服务器,要求是不能访问外网,需要其他可以有公网IP的服务器做端口代理,以SSH方式登录此服务器做系统管理. 环境模拟为两台VM虚拟机(搭载CentOS6 ...

  4. 内网服务器管理面板安装教程

    什么是内网服务器管理? 很多企业出于对数据安全.流程管控等方面的考虑,会选择将重要业务进行本地私有化部署,而本地私有化往往会涉及到内网环境部署. 我以前用的云帮手只能批量管理外网的云服务器,一直跟他们 ...

  5. 【vscode】ssh通过跳板机连接内网服务器

    以防自己忘记.. 跟着下面的步骤 step 1 本地生成密钥 生成自己电脑的公钥和私钥 ssh-keygen -t ed25519 会跳出几个步骤,第一个是指定路径用的,可以直接回车:后两个步骤是设置 ...

  6. vscode 经过跳板机,连接到内网服务器

    1.背景:为啥要用跳板机? 一般实验室等环境的服务器是设置在内网环境中的,无法直接使用笔记本在公共环境下直接连接.但是由于种种原因,会出现在这样的场景下需要连接服务器的需求,而通过跳板机是一种常见的办 ...

  7. 使用XShell通过Linux跳板机连接内网服务器

    说明 最近在维护一个项目,一共有两台Linux服务器,内网相连,用途不同.仅服务器A有外网地址,要求通过服务器A维护服务器B的项目. 服务器A外网地址:220.178.21.57,内网地址:192.1 ...

  8. 通过跳板服务器连接学校内网服务器并连接pycharm

    推荐大家非常好的ssh入门教程,详细地介绍了本地转发 阮一峰大佬ssh 朱双印大佬的教程,也是老熟人了 更形象地解释本地转发 pycharm官方文档 扩展小知识: 转发=映射 "本地转发&q ...

  9. 使用winScp实现跳板机登陆内网服务器

    通常网站为了安全起见,一般会在windows登陆linux内网时设置一层跳板机作为屏障,也就是说必须先登陆跳板机,然后才能登陆到内网服务器中,进而进行操作.这里使用winscp来配置一下如何登陆: 首 ...

最新文章

  1. 12-C语言排序算法
  2. 我常用的Eclipse插件
  3. 小结spring和struts整合的三类方式
  4. iOS中正则表达式的使用
  5. Spring OXM-XStream流化对象
  6. VTK:图片之ImageMapToColors
  7. 基于遗传算法实现自动组卷
  8. ssm read time out的原因_自检轮胎暗漏原因_什么是自检轮胎暗漏原因
  9. 永远太远,是时候离开了
  10. C语言——负数据强制类型转换注意事项
  11. 同步异步阻塞非阻塞杂记 1
  12. linux 解析elf文件格式,Linux下ELF文件解析
  13. android x5全屏白色,x5webview 自定义全屏界面(示例代码)
  14. monkeyrunner之环境搭建及实例(三)
  15. Python 集合符号
  16. 十分钟了结MySQL information_schema
  17. 完美解决Python 发送邮件126,136,QQ等,都会报•554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件
  18. 文件分割与合并(Java)
  19. Unity开发OpenXR | (一)OpenXR是什么?一文带你全面了解OpenXR的相关知识,上车收藏不迷路
  20. 低依赖C++ GUI库imgui笔记

热门文章

  1. linux+系统优化基础,Linux入门基础(三):Linux用户及权限基础
  2. android sd卡不可写,Android检查SD卡是否可读写
  3. php 500 yii,yii2.0出现500错误怎么办
  4. php javascript对象,JavaScript 对象
  5. php cdr,win10彻底禁止cdr联网
  6. 如何把表格做成源代码_他来了,他来了,文字、表格、公式图片识别神器V0.1测试版...
  7. oracle数据库12下载地址,Oracle 数据库和补丁下载地址 12.1.0.2 11.2.0.4 11.2.0.1
  8. php jsonerrorsyntax,php – json_decode返回JSON_ERROR_SYNTAX,但在线格式化程序表示JSON可以...
  9. matlab 绘制符号函数,DAY8 MATLAB学习笔记—simulink入门、MATLAB符号函数的图形绘制...
  10. 信息学奥赛之数学一本通_部分地区中考加分,又一批中学公布中考认可信息学特长生!...