真正解决 windows OpenSSH WARNING: UNPROTECTED PRIVATE KEY FILE!

本文介绍了使用VS Code Remote Development的Remote Debug功能时,配置连接Linux host用SSH key登陆,遇到Windows 10内置OpenSSH提示私钥文件权限问题的解决方法。通过在PowerShell获取用户名,对私钥文件进行权限设置,最终解决问题,可直接调试远程Linux环境下的Python。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【提醒】:不要再看其他文章了,以下才是根本的解决方法。

我开始用 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 包依赖的问题了

评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值