1. 程式人生 > 其它 >ssh隧道解決PyCharm跨過跳板機連線伺服器問題

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直譯器:

專案執行除錯配置:

三、VSCode遠端連線伺服器

使用remote-ssh工具,連線遠端伺服器即可,在VSCode中使用遠端終端比較方便,因為預設是開啟的遠端終端。

在PyCharm中開啟遠端終端的方式是:

開啟會話後選擇要連線的遠端伺服器即可。

總結:

  • VSCode比較麻煩的地方是需要自己將本地程式先上傳到伺服器(使用scp命令),然後在終端執行程式碼。
  • PyCharm則相對簡單一些。