以下內容為本人的著作,如需要轉載,請宣告原文連結 微信公眾號「englyf」https://www.cnblogs.com/englyf/p/16691460.html
我的需求是,在Windows桌面環境下,通過 VSCODE
遠端偵錯在伺服器(或者其它遠端主機)的工程程式碼。其實就是提供一個方便快捷的方式,讓你可以在原生的 VSCODE
環境裡編輯或者檢視遠端主機的目錄檔案罷了。
這裡說下我的設定過程:(首先,程式猿有個習慣把序號從0開始,莫要見怪)
在命令列視窗裡輸入 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)格式。
VSCODE
如果還沒安裝就裝一個唄,這裡邊的過程沒什麼可以講的。不過我有個推薦的地方如圖,尤其是新增到右鍵選單這裡:
VSCODE
外掛在 VSCODE
自帶的外掛市場裡搜尋以下外掛並且安裝:
外掛名 | 用途 |
---|---|
Remote - SSH | 用SSH開啟遠端機器的資料夾而且可以應用 vscode 的所有功能 |
Remote - SSH: Editing Configuration Files | 編輯 SSH 組態檔 |
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下面可以看到新新增的主機,預設是未連線狀態。
在上一步新增的主機視窗裡,右鍵選擇 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]沒有被保護起來,專業點的說法是檔案設定的許可權太過寬鬆了,得改,否則就是不給通過。好吧,我改!下面說下我的設定過程。
找到上邊提到的那個檔案[G:\ProjectWorkstation\ali-cloud-key-pair\id_rsa.pem],滑鼠右鍵選擇 屬性
,在彈出來的 屬性
視窗選擇 安全
,如圖
點選 高階
,在彈出的 高階安全設定
視窗選擇 禁用繼承
,然後一路點選確認並退出 高階安全設定
的視窗。
接著在 屬性
視窗點選 編輯
,在彈出的 許可權
視窗裡將所有的組或使用者名稱刪掉,再點選 新增
,把自己的當前使用者新增上去。
(至於怎麼找到當前使用者,這裡不展開了,你可以在其它地方找到這方面的資訊,逃。。。)
在 許可權
視窗,選中上面新建的使用者,編輯許可權,僅保留 讀取
即可。如圖
好了,點選確定並退出。