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: