我正在尝试使用私钥使用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没有等效的方法。
这听起来应该很容易,但我完全找不到任何合理的解决方案。有没有办法直接添加私钥而不通过文件,或跳过此隐私检查?还是我错过了其他的东西?
答案 0 :(得分:5)
您可以在Windows中使用icacls而不是chmod来调整文件权限。为了给当前用户读取权限并删除其他所有内容(这将允许openssh工作),这很好用:
icacls .\private.key /inheritance:r
icacls .\private.key /grant:r "%username%":"(R)"
答案 1 :(得分:2)
答案 2 :(得分:1)
如果我们仍在寻找SSH问题的解决方案:
如果我们无法删除用户
在我的问题中,我试图将ec2.prem文件(这是私钥)连接到AWS,并按照上述步骤操作后,便能够解决它。
快乐编码:)
答案 3 :(得分:0)
您可以在Windows资源管理器中找到该文件,右键单击该文件,然后选择“属性”。导航到“安全”标签,然后单击“高级”。
将所有者更改为您,禁用继承并删除所有权限。然后授予自己“完全控制权”并保存权限。现在SSH不再抱怨文件权限太开放了。
答案 4 :(得分:0)
我在Windows 10上做到了,它也解决了该问题,如您在图像中所见。
您应将文件所有者(包含私钥)更改为具有完全访问权限的用户名。 然后删除有权访问该文件的其他用户名。
右键单击包含私钥的文件,然后单击属性,然后单击“安全性”选项卡>“高级” 通过点击更改按钮,您可以将所有者更改为您的用户名。 (如果您不知道用户名,请在命令提示符下运行:“ echo%USERNAME%”。) 更改>高级...>立即查找
删除所有权限条目,除了刚添加的权限条目
单击禁用继承>转换继承的权限... 然后删除除您刚刚添加的所有权限条目。