一、修改本地和跳板機的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則相對簡單一些。