我正在尝试在 Cygwin 下使用 OpenSSH 设置 Git。我几乎已经设置好了一切。我有代理和公钥等等……但现在我得到了这个非常奇怪的错误:
$ git pull -u origin master
Bad owner or permissions on /home/Jordan/.ssh/config
fatal: The remote end hung up unexpectedly
谷歌搜索后发现是权限错误(当然)。问题在于:权限对我来说没问题。
我也尝试过chmod 0600 ~/.ssh/config
,但没有帮助。我尝试过:
Jordan@EarlzWindows8VM ~/dev/NonExceptional
$ chmod 0600 ~/.ssh/config
Jordan@EarlzWindows8VM ~/dev/NonExceptional
$ stat ~/.ssh/config
File: `/home/Jordan/.ssh/config'
Size: 47 Blocks: 1 IO Block: 65536 regular file
Device: 4ade2efdh/1256075005d Inode: 1970324837237461 Links: 1
Access: (0660/-rw-rw----) Uid: ( 1001/ Jordan) Gid: ( 513/ None)
Access: 2013-01-12 22:53:32.483072600 -0500
Modify: 2013-01-12 22:53:32.486074700 -0500
Change: 2013-01-12 23:27:33.077476800 -0500
Birth: 2013-01-12 22:53:32.483072600 -0500
请注意,无论出于何种原因,权限仍然显示为0660
。但我不明白为什么。我已在 Windows 资源管理器中验证了这些权限。只有我有权访问该文件,并且在检查“有效访问权限”时,用户组无权访问该文件。
我该如何修复这个错误?
另外,一些背景知识:Windows 8 Enterprise。已加入域(这总是使权限变得有趣)。Cygwin 是最新的
答案1
不要忘记 ACL
在我删除文件之前,什么都没起作用ACL并重置权限。
#remove ACLs
setfacl -b ~/.ssh/config
#reset permissions
chmod 0600 ~/.ssh/config
您可以使用getfacl
它来查看文件的当前 ACL。
getfacl ~/.ssh/config
在我删除 ACL 之前(已损坏):
# owner: Administrators
# group: None
user::rw-
group::---
group:Authenticated Users:rwx
group:SYSTEM:rwx
mask:rwx
other:---
之后:(工作)
# file: config
# owner: myusername
# group: None
user::rw-
group::---
other:---
答案2
我发现这总能解决问题:
chown Username:Users ~/.ssh/config
chmod go-rw ~/.ssh/config
答案3
问题最终是该文件的所有者是“None”组。我将组更改为“Users”,然后我就可以自由更改权限了
我从中知道了这一点这个相关问题
答案4
我的 cygwin64 在 win7 上以管理员身份运行,chmod/chown/setacl/icacls/copyacls/ 没有帮助;只有这个有效:ssh -F ~/.ssh/config ...