在 Cygwin 上設定 SSH/Git 會產生“~/.ssh/config 上的權限錯誤”

在 Cygwin 上設定 SSH/Git 會產生“~/.ssh/config 上的權限錯誤”

我正在嘗試在 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 ...

相關內容