以下內容為本人的著作,如需要轉載,請宣告原文鏈接 微信公眾號「englyf」https://www.cnblogs.com/englyf/p/16691460.html
我的需求是,在Windows桌面環境下,通過 VSCODE 遠程除錯在服務器(或者其它遠程主機)的工程代碼,其實就是提供一個方便快捷的方式,讓你可以在本地的 VSCODE 環境里編輯或者查看遠程主機的目錄檔案罷了,
這里說下我的配置程序:(首先,程式猿有個習慣把序號從0開始,莫要見怪)
0. 安裝 SSH
在命令列視窗里輸入 ssh 然后回車看看輸出,確認一下是否已經安裝了ssh,只要不是提示找不到ssh,那么就表示本機已安裝了ssh,
如果很不幸本地還沒安裝,那就搜索一下ssh的安裝教程吧,估計隔壁老王就有,
實在太懶不想搜的話,這里有條懶蟲[https://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: https://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)僅保留讀取權限
在 權限視窗,選中上面新建的用戶,編輯權限,僅保留 讀取即可,如圖

好了,點擊確定并退出,
再重新試一下連接主機吧,相信你的問題已經解決了_,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/507217.html
標籤:其他
