使用pycharm 跳板機連線內網伺服器

2022-03-22 19:06:45 字數 2145 閱讀 3902

接手實驗室伺服器後,大部分同學在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

完成配置後在跳板機上登入一次內網伺服器。

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

ssh -n -f -l 6000:《內網伺服器ip>:22 -p 《跳板機埠》 username@《跳板機ip> -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

這裡只需配置ip為127.0.0.1, 埠為6000,並輸入內網伺服器的賬號密碼即可看到伺服器安裝的python.

具體配置方式參考

ssh 隧道可能因為網路不穩定而斷開,每次斷開之後都需要手動再次建立ssh 隧道。下面介紹一種解決方案,通過cron定期執行指令碼來維護ssh隧道暢通:

編寫指令碼,通過判斷socket檔案是否存在來判斷隧道連線是否已經斷開

在本地任意位置建立指令碼auto_connect.sh並寫入如下內容(注意更換<>中內容)

#/usr/bin/env sh

if [[ ! -a "~/.ssh/《跳板機ip>:《跳板機埠》" ]]; then

echo "connecting 《跳板機ip>:《跳板機埠》 .."

ssh -n -f -l 6000:《內網伺服器ip>:22 -p 《跳板機埠》 username@《跳板機ip> -o tcpkeepalive=yes

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

echo "failed to connect 《跳板機ip>:《跳板機埠》" >&1

exit 2

fifi

使用cron服務定時執行指令碼建立ssh 隧道。在命令列中執行如下語句:(注意修改指令碼位置, 路徑不可用縮寫)

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

crontab ~/.crontab

本部分參考這裡, 使用cron服務定時執行指令碼參考這裡

整體文章

關於ssh建立管道

pycharm 配置遠端python直譯器和在本地修改伺服器**

corn 定時維護ssh 隧道

winscp實現跳板機連線

winscp實現 google authentication 鍵盤互動式認證 跳板機實現。普通使用者想利用ftp連線,並且實現上傳的話,會出現沒有許可權的提示,這個問題前面已經解決過,但是現在怎麼實現 google 認證加上跳板機呢。1 建立跳板機連線 填寫好跳板機的位址,埠等資訊,注意此處的是跳板...

VNC安裝配置及連線(跳板機)

yum install y tigervnc server 安裝vnc服務端,一般執行此句即可 yum groupinstall y x window system desktop 如果沒安裝桌面環境,執行安裝 yum install y vinagre vnc客戶端,一般不用在服務端也安裝客戶端 ...

MAC VsCode 跳板機 遠端連線伺服器

最近一直使用vscode遠端連線伺服器進行開始,畢竟伺服器比較多,vscode的遠端服務開始又很方便,而且加入秘鑰以後就等於秒開。但是最近我需要遠端登入一台跳板機轉的伺服器,找了很多技術文件,這裡總結一下。首先參考了這個201117 macos上通過vscode配置跳板機連線伺服器 剛開始沒看懂,後...