我開始用 Visual Studio Code - Insiders 了,因爲有一個很吸引我的功能 VS Code Remote Development裏的 Remote Debug。
這是什麼功能?就是代碼在 遠程的linux,也運行在遠程的linux上,但debuger是在本地的windows上,代碼也不用在windows上。
這怎麼發生的?ssh 大法。準確來說是 VS Code Remote Developmen的的 Remote SSH 擴展所支持的。
但在用這個功能是,我要配置連接 linux host,用ssh key登陸,
如下,我在 PowerShell 上測試 windows 10 內置的OpenSSH 連接我的 linux host,出現如下這個問題,說我的key too open 了。
PS C:\vm\share_vm> ssh -i .\id_rsa [email protected]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for '.\\id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key ".\\id_rsa": bad permissions
[email protected]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
如果是在linux下,chmod 600就搞定了,但這是windows。
按如下方法去解決。
1)非常重要的一步:
在得到當前用戶名(就如同在linux運行 id 命令一樣)
在PowerShell 運行如下命令
PS C:\vm\share_vm> $env:username
EduPlus <------ 記住這個當前用戶名,下面步驟要用到
2)右鍵這個 私鑰文件,選擇
【屬性】--> 【安全】--> 【高級】
點擊【更改權限】
如圖,然後把所有的【權限條目】都刪除了
然後按下圖操作,更改所有者
記住,EduPlus 是前面通過PowerShell 查出的當前用戶名,下圖是改完的效果
接着,添加權限條目,如下圖操作
記住,EduPlus 是前面通過PowerShell 查出的當前用戶名,點擊確定後,再按下圖打操作,給予當前用戶完全控制的權限
最後,你看的的樣子應該是如下圖,纔算正確的解決了問題
好了,問題已經解決。
再也不用在本地放一份代碼的副本了,直接調試遠程linux 環境下的python,各種依賴都是在linux下的,再也不用操心 windows下python 包依賴的問題了