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則相對簡單一些。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM