You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows SSH报错:'private-key权限过宽',如何调整私钥权限?

哈哈,这个问题我太熟了!之前在Windows 7上用OpenSSH连EC2也踩过这个权限的坑,Linux用chmod搞定的事,Windows得换两种思路来弄,给你详细说下:

方法1:图形界面修改(适合不想敲命令的朋友)
  • 找到你的private-key.pem文件(你提到的ppm应该是笔误啦),右键点击它选择「属性」
  • 切换到「安全」标签页,点击「编辑」按钮进入权限设置界面
  • 点击「添加」,输入你的Windows用户名(格式比如你的电脑名\你的用户名),点击「检查名称」确认无误后添加
  • 选中刚刚添加的用户,在「允许」列里只勾选「读取」权限,其他所有权限都取消勾选
  • 删除列表里的其他所有用户/组(比如Administrators、Users这类),确保只有你自己的用户拥有读取权限
  • 依次点击「确定」保存所有设置,之后再尝试连接EC2应该就能成功了
方法2:命令行快速搞定(高效省心)

打开命令提示符(CMD)或者PowerShell,先切换到私钥文件所在的目录,然后执行以下两条命令:

icacls private-key.pem /inheritance:r
icacls private-key.pem /grant:r "%USERNAME%":R

简单解释下这两条命令:

  • /inheritance:r:移除文件所有继承的权限,避免其他用户组通过继承获得访问权限
  • /grant:r "%USERNAME%":R:给当前登录的用户授予仅读取的权限,R就是读取权限的标识
额外注意点
  • 一定要确保私钥文件名正确,别把pem写成ppm啦,不然命令会找不到文件
  • Windows 7上的OpenSSH 7.6对私钥权限的要求和Unix系一致:私钥只能被当前用户读取,任何其他用户都不能有访问权限,这是SSH的安全机制要求
  • 如果还是连接失败,可以再检查下权限设置是否生效,或者重启下OpenSSH服务试试

内容的提问来源于stack exchange,提问作者Sabrina

火山引擎 最新活动