升级到 Windows 1809 后 ~./ssh/config 上的所有者或权限不正确

Dmi*_*hov 5 windows ssh file-permissions windows-10

我使用的是 Windows 10 OpenSSH 版本。更新到 Windows 1809 后,我得到了

C:\Windows\System32\OpenSSH\ssh.exe myhost
Bad owner or permissions on C:\\Users\\XXX/.ssh/config
Run Code Online (Sandbox Code Playgroud)

但执行

c:\Windows.old\Windows\System32\OpenSSH\ssh.exe myhost
Run Code Online (Sandbox Code Playgroud)

是成功的。

版本略有不同

C:\Windows.old\Windows\System32\OpenSSH\ssh.exe -V
OpenSSH_for_Windows_7.6p1, LibreSSL 2.6.5
C:\Windows\System32\OpenSSH\ssh.exe -V
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
Run Code Online (Sandbox Code Playgroud)

我试图像描述的那样“清理”权限,但它没有帮助。

小智 3

我遇到了类似的问题,并通过删除继承并仅保留用户、系统和管理员拥有完全控制访问权限来更改文件的 DACL(权限)来修复此问题:

icacls C:\Users\xxx\.ssh\config
C:\Users\xxx\.ssh\config NT AUTHORITY\SYSTEM:(I)(F)
                            BUILTIN\Administrators:(I)(F)
                            DOMAIN\xxx:(I)(F)
Run Code Online (Sandbox Code Playgroud)

我使用了 explorer 的 GUI,但也可以通过 icacls 来完成。例子:

> icacls.exe .\.ssh\config /grant everyone:f 
> ssh 127.0.0.1
Bad owner or permissions on C:\\Users\\xxx/.ssh/config
> icacls.exe .\.ssh\config /inheritance:d
> icacls.exe .\.ssh\config /remove everyone
> ssh 127.0.0.1
ssh 127.0.0.1
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
xxx@127.0.0.1's password:
Run Code Online (Sandbox Code Playgroud)