ssh隧道解決PyCharm跨過跳板機連線伺服器問題
阿新 • • 發佈:2022-03-05
一、修改本地和跳板機的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則相對簡單一些。