6

我最近使用 SSH 密钥和其他一切在 Cygwin 环境中安装了 Gitolite。

我成功安装了 Gitolite 并可以访问gitolite-admin存储库,配置并放置新密钥。当我committed 和pushed 时,一切都很好,直到我注意到我无法gitolite-admin再次访问新的存储库或存储库......

然后我通过 ssh 进入我的服务器,并注意到 gitolite 删除了authorized_keys除了我使用 SSH 配置的默认 SSH 密钥之外的所有公钥。

我检查了钩子是否正在传播并且一切看起来都很好 - Gitolite 创建了新的存储库并编译了新的gitolite.conf

我不知道我错过了什么——出了点问题,但我不知道它是什么。

我最后看到的是文件~/.gitolite/src/sshkeys-lint管理authorized_keys文件,但我不太了解 shell 脚本语言。

4

1 回答 1

6

当您提交时,您是否在控制台(您提交的机器的)中收到以下错误?

remote: FIND: Parameter format not correct 
remote: FIND: Parameter format not correct 

如果是,那么问题出在 find.exe 上。

Windows 在其 \windows\system32 文件夹中有一个 find.exe,而 cygwin 有自己的 find.exe。通常 \windows\system32 在环境变量 'path' 中排在第一位。

Gitolite 在其脚本中使用“find”,但不幸的是,来自 windows 而不是来自 cywin 的 find.exe 被执行。

现在要解决这个问题,请转到环境变量选项卡并在 system32 之前添加 cygwin 的 bin 目录。

在此之后,您将不会再次遇到“authorized_keys 文件在提交时被清除”的问题。

我有 gitolite 在 Windows Server 2008 机器上工作,镜像工作正常。(我已将其配置为从机,而主机是 centOs 机器。)更多信息,由于您已将 sshd 安装为 Windows 服务,因此 cygwin 路径的优先级将低于 Windows 路径将启动。

于 2012-01-20T09:13:11.057 回答