我正在尝试使用服务运行与 openssh 的连接。不幸的是,openssh 要求身份验证密钥只能由打算使用它的用户读取(如果有办法让它跳过该检查,我还没有找到)。这对于普通用户来说很有效,使用:
icacls .\private.key /inheritance:r
icacls .\private.key /grant:r "%username%":"(R)"
Windows 服务运行自己的半用户,我完全无法赋予该用户正确的文件权限。
编辑:如果有人对其他开源或免费使用的 ssh 程序或库有任何好主意,可以用来创建带有身份验证密钥的隧道,我愿意倾听。似乎其中很多都无法正确支持 Windows。
答案1
发布为答案,以便更容易找到(最初在评论中)。
Windows 服务运行的默认用户名就是“SYSTEM”。因此,使用命令行方法设置权限:
icacls .\private.key /inheritance:r
icacls .\private.key /grant:r "SYSTEM":"(R)"