我使用的是 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 ~]$