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來修改遠程代碼,這樣要方便一些。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章