【问题标题】:Cygwin/Git/Gitosis unable to push new repositoryCygwin/Git/Gitosis 无法推送新的存储库
【发布时间】:2009-11-08 19:24:19
【问题描述】:

我最近在我的 Windows Server 2003 机器上设置了 cygwin、git 和 gitosis,但遇到了麻烦。我已经按照我能找到的信函中的几乎所有教程进行操作,并确认当我推送 gitosis-admin 存储库时,我的 git 帐户的 authorized_keys 表正在更新。但是,在创建新存储库时,我似乎陷入了困境。

我看过很多推荐以下代码的教程(显然是 repo 名称更改),在 git bash 和 windows 命令行中都尝试过:

mkdir free_monkey
cd free_monkey
git init
touch README
git add .
git commit -m "Added blank readme"
git remote add origin git@my_server:free_monkey.git
git push origin master

当我执行最后一行时(无论我发送什么),它说“远程端意外挂断”: $ git push -v origin master:refs/heads/master 推送到 git@my_server:free_monkey.git 致命:远端意外挂断

我的 gitosis.conf 文件如下所示:

[gitosis]
loglevel = DEBUG

[group gitosis-admin]
writable = gitosis-admin free_monkey.git free_monkey
members = git@my_server @all

如果我缺少帮助我调试此问题所需的任何信息,请告诉我。谢谢!

另一件让我担心的事情:

$ ssh git@my_server git 
DEBUG:gitosis.serve.main:Got command 'git' 
ERROR:gitosis.serve.main:Unknown command denied 

这可能是问题吗?如果是这样,我该如何解决?

【问题讨论】:

  • 将其作为编辑添加到您的帖子以保留格式。
  • 感谢布兰克,我将其添加到我的问题中。第一次在 StackOverflow 上提问;不知道我可以编辑我的问题。
  • “命令被拒绝”部分确实是你的线索——远程服务器上的 git 工作不正常。不幸的是,我在 Windows 上设置 git 的经验为零,但我建议至少检查一下你是否可以在 gitosis 之外成功地运行 git——例如,在某处尝试“git init”命令。检查 git 是否也在 gitosis 用户的路径中。

标签: git cygwin gitosis


【解决方案1】:

你可能第一次打错字了。尝试删除原点并重新添加它:

git rm origin
git remote add origin git@my_server:free_monkey.git

然后再次尝试推送。值得一试。

【讨论】:

  • 不幸的是,不,我一直在尝试。我仍然得到“致命:远程端意外挂断”......我在@之前也尝试过不同的用户,但他们也没有工作。感谢您的快速建议。
【解决方案2】:

好的,所以,“未知命令被拒绝”错误似乎是一个红鲱鱼。出于安全原因,Gitosis 只允许在 git push/pull 过程中实际发送的命令,因此“git”不是已知命令。

我继续收到同样的错误,但在另一个论坛中偶然发现了对 authorized_keys 文件的引用 - 重复的密钥完全破坏了 authorized_keys 文件。果然,那是我的问题。希望这对那里的人有所帮助。

要真正诊断此问题,请按以下步骤操作:

  1. 为您用来访问 git 存储库的用户收集您的 authorized_keys 文件(我的是 git@my_server,所以我查看了 /home/git/.ssh/authorized_keys)。确保每个公钥只有一次。
  2. 我遇到了第二个问题,即我试图将多个 ppk 与 TortoiseGit 和 Pageant 一起使用。 Pageant 似乎忽略了 TortoiseGit 更改密钥的请求;右键单击任务栏中的 Pageant(戴着帽子的计算机)并查看密钥,然后删除与您要使用的公钥不匹配的所有密钥(可能是所有密钥)。

我现在可以通过 SSH 在我的服务器上运行 gitosis,可通过 TortoiseGit 访问。

【讨论】:

  • 我已经从使用 Gitosis 转向使用不同用户名并有效地创建类似 git-hub 的定制解决方案。我有兴趣分享代码,但用 C# 编写(我在 Python 中有很好的部分,但对这门语言的经验不是很丰富),并希望将其置于可重用状态以供其他人使用。如果大家有兴趣,我会发到github上分享。
猜你喜欢
  • 2012-03-30
  • 2015-07-10
  • 2011-03-14
  • 1970-01-01
  • 2011-12-09
  • 2014-03-15
  • 2013-07-04
  • 2018-06-24
相关资源
最近更新 更多