Remote SSH
有些代碼我們需要在服務器上跑,但是debug有點複雜, 這時,我們可以使用VScode 的 Remote SSH 這個拓展來實現在本地直接debug服務器上的程序, 從而提升開發體驗。
問題描述
我需要用先連接到一個跳板機然後再去訪問內網的服務器: local -> server_A -> server_B
.
local
的操作系統是win10
server_A
和server_B
的操作系統都是linux
.
爲了方便日常工作, 我們使用SSH公鑰連接
.
配置SSH公鑰
在本地,我們先使用 ssh-keygen
生成一個對私鑰和公鑰
# git bash
$ ssh-keygen -t rsa -b 4096
$ ls
id_rsa id_rsa.pub
我們把id_rsa.pub
裏的內容複製到server_A
和server_B
的~/.ssh/authorized_keys
文件中(如果沒有請新建)。
配置本地~/.ssh/config
在vscode中我們點擊新生成的連接按鈕, 如果沒有config文件的話回出現下面的選項, 然後點擊configure就行啦~
按照如下的例子編寫就行。
Host server_A
HostName 128.xxx.xxx.xxx #跳轉用的機器
Port 8088 #對應的端口
User user_sever_A #username
IdentityFile ~/.ssh/id_rsa #根據所用bash改成給對應的格式吧, 指向私鑰位置
Host server_B
HostName 10.xx.xx.xx
Port 22
User user_sever_B
ProxyCommand ssh user_server_A@server_A -W %h:%p # 如果不能報錯使用下一行
#ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe user_server_A@server_A -W %h:%p
IdentityFile ~/.ssh/jwang_rsa
如果本地使用windows可能有錯誤,那麼就使用加註釋的那一行ProxyCommand
然後就能成功的從vscode上訪問遠程服務器了,按照提示在遠程服務器中裝上vscode的python拓展就可以遠程debug了, 非常舒適~
good luck