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 的工程位置。Open Folder

說回來,上邊說到連接可能會有不成功的情況。我這裡就曾碰到這樣的錯誤,點擊連接後彈出下面的警告窗。
連接失敗

意思就是說 無法穩定連接到我的遠程主機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)僅保留讀取許可權

許可權窗口,選中上面新建的用戶,編輯許可權,僅保留 讀取即可。如圖
編輯許可權

好了,點擊確定並退出。

再重新試一下連接主機吧,相信你的問題已經解決了_

Tags: