【提醒】:不要再看其他文章了,以下才是根本的解决方法。
我开始用 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 root@192.168.56.101
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
root@192.168.56.101: 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 包依赖的问题了