Loading

ssh隧道解决PyCharm跨过跳板机连接服务器问题

一、修改本地和跳板机的ssh配置

vim ~/.ssh/config

在config中添加以下内容:

Host *
    ControlPersist yes
    ControlMaster auto
    ControlPath ~/.ssh/%n:%p

 

二、在本地设置ssh隧道

ssh -N -f -L 6000:<内网服务器ip>:22 -p <跳板机端口> username@<跳板机ip> -o TCPKeepAlive=yes

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

  • N 告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发
  • f 告诉SSH客户端在后台运行
  • L 做本地映射端口
  • 关于SSH建立管道隧道

之后,在本地登录6000端口就相当与登录内网服务器了。

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

开机重启后此端口会失效,因此我们为了方便可以编写一个shell脚本.sshport_config。

#!/bin/bash
ssh -N -f -L 6000:<内网服务器ip>:22 -p <跳板机端口> username@<跳板机ip> -o TCPKeepAlive=yes

每次只需要执行:

source .sshport_config

输入密码后执行:

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

即可登录内网服务器。
 

三、PyCharm远程连接服务器

添加ssh解释器即可,将其作为python解释器,

  • 需要设置服务器上python解释器路径
  • 需要将项目文件映射到远程的某个文件夹上,其实就是执行了scp命令
  • 最后设置项目运行调试配置

设置python解释器:
image
项目运行调试配置:
image
 

三、VSCode远程连接服务器

使用remote-ssh工具,连接远程服务器即可,在VSCode中使用远程终端比较方便,因为默认是开启的远程终端。

在PyCharm中开启远程终端的方式是:
image
开启会话后选择要连接的远程服务器即可。

总结:

  • VSCode比较麻烦的地方是需要自己将本地程序先上传到服务器(使用scp命令),然后在终端运行代码。
  • PyCharm则相对简单一些。
posted @ 2022-03-05 09:40  raiuny  阅读(1276)  评论(0编辑  收藏  举报