日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

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

發(fā)布時(shí)間:2025/3/15 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python通过跳板机连接服务器_使用pycharm、跳板机连接内网服务器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用pycharm、跳板機(jī)連接內(nèi)網(wǎng)服務(wù)器

接手實(shí)驗(yàn)室服務(wù)器后,大部分同學(xué)在GPU集群上跑程序都是直接在ssh界面上跑,這里想著通過(guò)pycharm通過(guò)跳板機(jī)來(lái)連接服務(wù)器。

總體就是實(shí)驗(yàn)室服務(wù)器僅限內(nèi)網(wǎng)訪問(wèn),同時(shí)實(shí)驗(yàn)室也提供了一個(gè)跳板機(jī),可以先ssh到跳板機(jī)再?gòu)奶鍣C(jī)ssh到內(nèi)網(wǎng)服務(wù)器。然而這種方式不方便傳輸文件,也沒(méi)法用pycharm進(jìn)行自動(dòng)同步代碼或者遠(yuǎn)程調(diào)試。本篇文章給出了一個(gè)該類問(wèn)題的解決方案,即通過(guò)ssh隧道的方式,用Pycharm通過(guò)跳板機(jī)連接內(nèi)網(wǎng)服務(wù)器。

步驟一 配置免密登錄

一般情況下,GPU集群都是配置過(guò)免密登陸的,所以這個(gè)步驟一般是忽略的。

在本地配置

vim ~/.ssh/config

在config文件中輸入以下內(nèi)容

Host *

ControlPersist yes

ControlMaster auto

ControlPath ~/.ssh/%n:%p

完成配置后在本地登錄一次跳板機(jī).

登錄跳板機(jī),并在跳板機(jī)配置

vim ~/.ssh/config

在config文件中輸入以下內(nèi)容

Host *

ControlPersist yes

ControlMaster auto

ControlPath ~/.ssh/%n:%p

完成配置后在跳板機(jī)上登錄一次內(nèi)網(wǎng)服務(wù)器。

步驟二 設(shè)置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

上述命令各個(gè)參數(shù)的含義如下:

-N 告訴SSH客戶端,這個(gè)連接不需要執(zhí)行任何命令。僅僅做端口轉(zhuǎn)發(fā)

-f 告訴SSH客戶端在后臺(tái)運(yùn)行

-L 做本地映射端口

關(guān)于SSH建立管道參考

此時(shí),登錄本地的6000端口就相當(dāng)于登錄內(nèi)網(wǎng)服務(wù)器了。

ssh -p 6000 服務(wù)器用戶名@localhost

步驟三 配置pycharm

配置pycharm

這里只需配置ip為127.0.0.1, 端口為6000,并輸入內(nèi)網(wǎng)服務(wù)器的賬號(hào)密碼即可看到服務(wù)器安裝的python.

具體配置方式參考

步驟四(可選)使用corn 定時(shí)維護(hù)ssh 隧道

SSH 隧道可能因?yàn)榫W(wǎng)絡(luò)不穩(wěn)定而斷開(kāi),每次斷開(kāi)之后都需要手動(dòng)再次建立SSH 隧道。下面介紹一種解決方案,通過(guò)cron定期執(zhí)行腳本來(lái)維護(hù)SSH隧道暢通:

編寫腳本,通過(guò)判斷socket文件是否存在來(lái)判斷隧道連接是否已經(jīng)斷開(kāi)

在本地任意位置創(chuàng)建腳本auto_connect.sh并寫入如下內(nèi)容(注意更換<>中內(nèi)容)

#/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服務(wù)定時(shí)執(zhí)行腳本建立ssh 隧道。在命令行中執(zhí)行如下語(yǔ)句:(注意修改腳本位置, 路徑不可用縮寫)

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

crontab ~/.crontab

本部分參考這里, 使用cron服務(wù)定時(shí)執(zhí)行腳本參考這里

Reference

整體文章

總結(jié)

以上是生活随笔為你收集整理的python通过跳板机连接服务器_使用pycharm、跳板机连接内网服务器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。