在 Cygwin 上设置 SSH/Git 会产生“~/.ssh/config 上的错误权限”

Ear*_*rlz 6 windows ssh cygwin git

我正在尝试在 Cygwin 下使用 OpenSSH 设置 Git。我几乎完成了所有设置。我有代理和公钥等等......但现在我得到了这个非常奇怪的错误:

$ git pull -u origin master
Bad owner or permissions on /home/Jordan/.ssh/config
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

谷歌搜索它似乎是一个权限错误(当然)。一个问题:权限对我来说很好。

我也试过做一个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
Run Code Online (Sandbox Code Playgroud)

请注意,无论出于何种原因,权限仍然显示为0660. 我不明白为什么。我已经在 Windows 资源管理器中验证了这些权限。只有我有权访问该文件,并且在选中“有效访问”时,用户组无权访问该文件。

我该如何解决这个错误?

另外,一些背景:Windows 8 Enterprise。加入域(这总是使权限变得有趣)。Cygwin 是最新的

And*_*ewD 16

不要忘记ACL

在我剥离ACL文件并重置权限之前,对我没有任何作用。

#remove ACLs
setfacl -b ~/.ssh/config

#reset permissions
chmod 0600 ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)

您可以使用getfacl来查看文件的当前 ACL。

getfacl ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)

在我删除 ACL(已损坏)之前:

# owner: Administrators
# group: None
user::rw-
group::---
group:Authenticated Users:rwx
group:SYSTEM:rwx
mask:rwx
other:---
Run Code Online (Sandbox Code Playgroud)

之后:(工作)

# file: config
# owner: myusername
# group: None
user::rw-
group::---
other:---
Run Code Online (Sandbox Code Playgroud)


小智 7

我发现这总是可以修复它:

chown Username:Users ~/.ssh/config
chmod go-rw ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)


Ear*_*rlz 4

问题最终是该文件归“None”组所有。我将组更改为“Users”,然后我可以自由更改权限

我从这个相关问题中发现了这一点