VSCODE 配置遠程調試環境
以下內容為本人的著作,如需要轉載,請聲明原文鏈接 微信公眾號「englyf」//www.cnblogs.com/englyf/p/16691460.html
我的需求是,在Windows桌面環境下,通過 VSCODE
遠程調試在伺服器(或者其它遠程主機)的工程程式碼。其實就是提供一個方便快捷的方式,讓你可以在本地的 VSCODE
環境里編輯或者查看遠程主機的目錄文件罷了。
這裡說下我的配置過程:(首先,程式猿有個習慣把序號從0開始,莫要見怪)
0. 安裝 SSH
在命令行窗口裡輸入 ssh
然後回車看看輸出,確認一下是否已經安裝了ssh。只要不是提示找不到ssh,那麼就表示本機已安裝了ssh。
如果很不幸本地還沒安裝,那就搜索一下ssh的安裝教程吧,估計隔壁老王就有。
實在太懶不想搜的話,這裡有條懶蟲[//sourceforge.net/projects/sshwindows/]送給兄dei你。
…
到這裡假設已經確認好安裝了ssh,下面會用ssh生成密鑰對,包括公鑰和私鑰,這會被用到綁定伺服器和本地電腦便於免密碼登錄。
C:\Users\我的用戶名>ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\我的用戶名/.ssh/id_rsa):
輸入回車,保存密鑰對到默認的目錄 C:\Users\我的用戶名\.ssh
中。
Enter passphrase (empty for no passphrase):
輸入回車,設置密鑰對保護密碼為空(如果對安全性要求比較高,建議還是輸入一下密碼再回車)。
Enter same passphrase again:
這一步只是重複輸入上一步輸入的密碼,如果上一步設置密碼是空,這一步也直接輸入回車。
Your identification has been saved in C:\Users\XXX/.ssh/id_rsa.
Your public key has been saved in C:\Users\XXX/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXX
The key's randomart image is:
+---[RSA 3072]----+
|@@==++ . |
XXXX
+----[SHA256]-----+
此時,公鑰已經保存到 C:\Users\xxx\.ssh\id_rsa.pub
文件中,私鑰已經保存到 C:\Users\xxx\.ssh\id_rsa
文件中。
而我用的是阿里雲的伺服器,它會要求使用後台操作介面生成私鑰並自動下載到本地,保存的格式是(.pem)格式。
1. 打開已安裝的 VSCODE
如果還沒安裝就裝一個唄,這裡邊的過程沒什麼可以講的。不過我有個推薦的地方如圖,尤其是添加到右鍵菜單這裡:
2. 安裝 VSCODE
插件
在 VSCODE
自帶的插件市場里搜索以下插件並且安裝:
插件名 | 用途 |
---|---|
Remote – SSH | 用SSH打開遠程機器的文件夾而且可以應用 vscode 的所有功能 |
Remote – SSH: Editing Configuration Files | 編輯 SSH 配置文件 |
3. 編輯 SSH
配置文件
在 VSCODE
左側邊欄里找到 Remote Explorer
一項,點擊進去。
在彈出的窗口裡,下拉菜單選擇 SSH Targets
(這裡的目的是鏈接遠程伺服器),再點擊設置按鈕,在彈出來的選擇窗口裡,如圖
選擇第一個(自己用戶目錄下的 config
文件)。按照下面的提示編輯內容並保存。
# Read more about SSH config files: //linux.die.net/man/5/ssh_config
Host 自己起個名字,你喜歡就好
HostName 遠程伺服器的IP地址
User 系統用戶名
Port 埠號,SSH一般都是22
IdentityFile 密鑰對里的私鑰的本地保存位置(用雙引號括起來)
然後在 VSCODE
左邊的窗口裡SSH TARGETS下面可以看到新添加的主機,默認是未連接狀態。
4. 連接主機
在上一步添加的主機窗口裡,右鍵選擇 Connect to Host in Current Window
就可以在當前窗口連接到指定的遠程主機了。
既然連接成功了(可能也會失敗,後邊分析原因),那麼遠程主機的文件怎麼瀏覽查看或者編輯呢?
在 VSCODE
左側邊欄里找到 Explorer
一項,點擊進去。
如果還沒有文件被打開,那麼在左邊的窗口可以看到一欄 NO FOLDER OPENED
,點擊打開,再點擊 Open Folder
按鈕,在中間會彈出下拉菜單,在裡邊可以填上想要打開的遠程主機的目錄。默認顯示 /root/
目錄了,我這裡直接填我的一個 Django 的工程位置。
說回來,上邊說到連接可能會有不成功的情況。我這裡就曾碰到這樣的錯誤,點擊連接後彈出下面的警告窗。
意思就是說 無法穩定連接到我的遠程主機xxx
,然後也可以看到輸出窗口會列印連接的過程日誌。細心點的話,可以從日誌里看到下面的關鍵資訊:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[03:12:56.641] > @ WARNING: UNPROTECTED PRIVATE KEY FILE! @
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> Permissions for 'G:\\ProjectWorkstation\\ali-cloud-key-pair\\id_rsa.pem' are too open.
> It is required that your private key files are NOT accessible by others.
> This private key will be ignored.
> Load key "G:\\ProjectWorkstation\\ali-cloud-key-pair\\id_rsa.pem": bad permissions
> [email protected]: Permission denied (publickey).
意思就是說我這私鑰文件[存放在 G:\ProjectWorkstation\ali-cloud-key-pair\id_rsa.pem]沒有被保護起來,專業點的說法是文件設置的許可權太過寬鬆了,得改,否則就是不給通過。好吧,我改!下面說下我的配置過程。
1)刪掉不相關的用戶所有者,只保留當前用戶
找到上邊提到的那個文件[G:\ProjectWorkstation\ali-cloud-key-pair\id_rsa.pem],滑鼠右鍵選擇 屬性
,在彈出來的 屬性
窗口選擇 安全
,如圖
點擊 高級
,在彈出的 高級安全設置
窗口選擇 禁用繼承
,然後一路點擊確認並退出 高級安全設置
的窗口。
接著在 屬性
窗口點擊 編輯
,在彈出的 許可權
窗口裡將所有的組或用戶名刪掉,再點擊 添加
,把自己的當前用戶添加上去。
(至於怎麼找到當前用戶,這裡不展開了,你可以在其它地方找到這方面的資訊,逃。。。)
2)僅保留讀取許可權
在 許可權
窗口,選中上面新建的用戶,編輯許可權,僅保留 讀取
即可。如圖
好了,點擊確定並退出。