我正在尝试使用私钥使用Windows版OpenSSH与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
Run Code Online (Sandbox Code Playgroud)
在Linux上,使用私钥文件上的简单chmod 600可以解决此问题,但是Windows没有等效的方法。
这听起来应该很容易,但是我完全无法找到任何合理的解决方案。是否可以直接添加私钥而不通过文件,也可以跳过此隐私检查?还是我很想念其他东西?
小智 21
仅供参考:将“test.pem”重命名为原始 pem 文件名。
设置路径变量
$path = ".\test.pem"
重置以删除显式权限
icacls.exe $path /reset
给予当前用户明确的读取权限
icacls.exe $path /GRANT:R "$($env:USERNAME):(R)"
禁用继承并删除继承的权限
icacls.exe $path /inheritance:r
笔记:
Exc*_*dos 11
您可以在Windows中使用icacls而不是chmod来调整文件权限。要授予当前用户读取权限并删除其他所有内容(这将允许openssh正常工作),这可以很好地工作:
icacls .\private.key /inheritance:r
icacls .\private.key /grant:r "%username%":"(R)"
Run Code Online (Sandbox Code Playgroud)