繁体   English   中英

如何避免权限被拒绝(公钥)SSH 密钥(Windows)

[英]How to avoid Permission denied (publickey) SSH key (Windows)

我想用 SSH 连接我的 ec2。 但我得到这个错误:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'F:\\Config\\first1.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "F:\\Config\\first1.pem": bad permissions
ec2-user@ec2-52-14-94-38.us-east-2.compute.amazonaws.com: Permission denied (publickey).

我怎样才能在 Windows 上解决这个问题?

如果您的私人 SSH 密钥(无论操作系统)的权限太开放,您将无法使用该密钥。

通常它应该是尽可能低的权限(仅供您的用户只读),至少在 Windows 上,您应该能够删除所有其他用户的权限,这将允许加载密钥。

这是对我有用的方法

步骤 1查看图像

右键单击资源管理器上的密钥文件first1.pem并转到“属性”>“安全性”>“高级”>“禁用继承”

步骤 2查看图像

选择“将此对象的继承权限转换为显式权限”

步骤 3查看图像

然后删除那里的所有内容(包括管理员、用户、用户组)并单击添加按钮。

步骤 4查看图像

现在选择选择一个主体>高级>立即查找>[您的用户对象]>确定

步骤 5查看图像

现在您可以勾选“完全控制”,然后按“确定”

现在其他人无法访问您的密钥文件。 这是唯一对我有用的方法。 希望能帮助到你。 谢谢你。

我在 PowerShell 桌面版上创建了一个实用程序脚本来立即设置所需的权限。

它能做什么

它包含一个函数,该函数将文件作为输入并设置删除继承和除当前用户之外的所有用户的权限。

请注意,需要首先应用继承,以便随后能够删除其他用户(如果不首先应用继承,则执行此操作的方法将无能为力)。

在运行脚本之前,应将ExecutionPolicy设置为RemoteSigned ,我更喜欢在会话范围内应用,以免在我的系统上更改永久设置。

如何使用它

打开 Windows Power Shell 控制台,首先运行:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned

然后下载脚本,编辑私有文件名,运行即可。

 <script src="https://gist.github.com/Scot-Bernard/fd409ad73b3733c3b9e93dd9055b9814.js"></script>

确保只向主要用户授予权限,在我的例子中是联想。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM