【发布时间】:2010-12-06 01:56:55
【问题描述】:
最近一直无法克隆或推送到github,正在努力寻找根本原因。
这是在 Windows 上
我有 cygwin + git 和 msysgit。
Msysgit 使用以下选项安装:
- OpenSSH
- 从 Windows 命令提示符使用 Git
这给了我 4 个环境来尝试使用 git:
- Windows cmd 提示符
- Powershell
- Git 重击
- 赛格温
不知何故,当我尝试使用 msysgit、cmd.exe 或 Powershell 克隆存储库时,我得到了以下错误:
> Initialized empty Git repository in
> C:/sandbox/SomeProject/.git/
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> @ WARNING: UNPROTECTED PRIVATE KEY FILE! @
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> Permissions 0644 for
> '/c/Users/Ben/.ssh/id_rsa' are too
> open. It is recommended that your
> private key files are NOT accessible
> by others. This private key will be
> ignored. bad permissions: ignore key:
> /c/Users/Ben/.ssh/id_rsa Permission
> denied (publickey). fatal: The remote
> end hung up unexpectedly
这是使用我的 c:\users\ben\ 文件夹中的 .ssh 文件夹,这是 msysgit 使用的。 我怀疑 cygwin 可以工作,因为 .ssh 文件夹位于其他位置,但我不确定为什么
在 Git Bash 中,我检查了权限:
$ ls -l -a ~/.ssh
这给了我:
drwxr-xr-x 2 Ben Administ 0 Oct 12 13:09 .
drwxr-xr-x 34 Ben Administ 8192 Oct 12 13:15 ..
-rw-r--r-- 1 Ben Administ 1743 Oct 12 12:36 id_rsa
-rw-r--r-- 1 Ben Administ 399 Oct 12 12:36 id_rsa.pub
-rw-r--r-- 1 Ben Administ 407 Oct 12 13:09 known_hosts
这些权限显然太宽松了。他们怎么会这样,我不知道。
我可以尝试改变它们...
$ chmod -v -R 600 ~/.ssh
告诉我:
mode of `.ssh' changed to 0600 (rw-------)
mode of `.ssh/id_rsa' changed to 0600 (rw-------)
mode of `.ssh/id_rsa.pub' changed to 0600 (rw-------)
mode of `.ssh/known_hosts' changed to 0600 (rw-------)
但是好像没有效果。我仍然遇到同样的错误,并且正在做
$ ls -l -a ~/.ssh
产生与以前相同的权限。
更新:
我尝试在 cygwin 中修复这些文件的权限,并且 cygwin 正确报告了它们的权限,gitbash 没有: alt text http://cdn.cloudfiles.mosso.com/c54102/app7962031255448924.jpg
关于如何真正修复这些权限的任何想法?
【问题讨论】:
-
您可能想告诉我们 C:\Users\Ben\ 使用的本机文件系统是什么。似乎该文件系统不支持真正的权限,或者外壳和文件系统之间的映射无法正常工作。您可以通过 Windows ACL 更改权限吗?
-
我使用的是 Windows 7。我可以更改权限,但它们应该是什么?所有 github/ssh 文档都说您需要 0600,但我不知道这在 Windows ACL 中意味着什么。
-
呃......这里有点旁注,但是将目录更改为 600 是个坏主意。目录(和可执行文件)总是高一位(700 不是 600,755 不是 644)。在目录上执行此操作将使其无法列出。更详细的解释见dartmouth.edu/~rc/help/faq/permissions.html。
-
你反对使用 PuTTY 吗?
-
如果它解决了我的问题,那么不会,但我很想知道为什么这个设置对我不起作用。
标签: git ssh cygwin msysgit openssh