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

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

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

C:\Windows\System32\OpenSSH\ssh.exe myhost
Bad owner or permissions on C:\\Users\\XXX/.ssh/config

但执行

c:\Windows.old\Windows\System32\OpenSSH\ssh.exe myhost

成功了。

版本略有不同

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

我尝试过“清理”权限,例如描述但没有帮助。

答案1

我遇到了类似的问题,并通过更改文件的 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)

我使用了 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.
[email protected]'s password:

答案2

我遇到了类似的问题,升级到 1809 后,Windows 安装了它自己的 ssh.exe。Cygwin 提供的 Ssh 运行良好:

已安装以下 ssh.exe:

C:\Users\ebajgrz\.ssh>where ssh
C:\Windows\System32\OpenSSH\ssh.exe
c:\cygwin64\bin\ssh.exe

Windows 的 ssh 客户端抱怨权限问题:

C:\Users\ebajgrz\.ssh>C:\Windows\System32\OpenSSH\ssh.exe myserver
Bad owner or permissions on C:\\Users\\ebajgrz/.ssh/config

Cygwin 的 ssh 工作正常:

C:\Users\ebajgrz\.ssh>C:\cygwin64\bin\ssh.exe myserver
Last login: Wed Feb 19 09:01:35 2020 from 100.93.177.156
[ebajgrz@myserver ~]$

相关内容