OpenSSH在Windows上使用私钥("不受保护的私钥文件"错误)

时间:2018-02-20 15:12:36

标签: key openssh

我正在尝试使用私钥使用OpenSSH for Windows进行SSH服务器的简单连接,并且遇到了这个:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'private' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "private": bad permissions

在Linux上,这是通过私钥文件上的简单chmod 600修复的,但是Windows没有等效的方法。

这听起来应该很容易,但我完全找不到任何合理的解决方案。有没有办法直接添加私钥而不通过文件,或跳过此隐私检查?还是我错过了其他的东西?

5 个答案:

答案 0 :(得分:5)

您可以在Windows中使用icacls而不是chmod来调整文件权限。为了给当前用户读取权限并删除其他所有内容(这将允许openssh工作),这很好用:

icacls .\private.key /inheritance:r
icacls .\private.key /grant:r "%username%":"(R)"

答案 1 :(得分:2)

对于 Windows 10 将密钥文件存储在用户中 例如:C:\Users\MANNEM.ssh

确保私钥文件的权限如图所示 permissions

permissions

答案 2 :(得分:1)

如果我们仍在寻找SSH问题的解决方案:

  1. 转到您的私钥并添加计算机的root用户(确保您要添加计算机的所有者)并提供完整权限。
  2. 删除其他用户。

如果我们无法删除用户

  1. 转到“属性”标签中的“安全性”标签,然后单击“高级”
  2. 在下一个屏幕中,单击“禁用继承”按钮。
  3. 它将打开一个弹出窗口,然后选择第一个选项(转换继承的权限..),然后尝试删除。

在我的问题中,我试图将ec2.prem文件(这是私钥)连接到AWS,并按照上述步骤操作后,便能够解决它。

快乐编码:)

答案 3 :(得分:0)

您可以在Windows资源管理器中找到该文件,右键单击该文件,然后选择“属性”。导航到“安全”标签,然后单击“高级”。

将所有者更改为您,禁用继承并删除所有权限。然后授予自己“完全控制权”并保存权限。现在SSH不再抱怨文件权限太开放了。

答案 4 :(得分:0)

我在Windows 10上做到了,它也解决了该问题,如您在图像中所见。

您应将文件所有者(包含私钥)更改为具有完全访问权限的用户名。 然后删除有权访问该文件的其他用户名。

  1. 右键单击包含私钥的文件,然后单击属性,然后单击“安全性”选项卡>“高级” 通过点击更改按钮,您可以将所有者更改为您的用户名。 (如果您不知道用户名,请在命令提示符下运行:“ echo%USERNAME%”。) 更改>高级...>立即查找

  2. 删除所有权限条目,除了刚添加的权限条目

单击禁用继承>转换继承的权限... 然后删除除您刚刚添加的所有权限条目。

enter image description here