Git-接收包致命

Git-receive-pack fatal

我在 linux ssh 服务器后面设置了一个 git 存储库。存储库位于 /home/git/mimpi.git。用户 git 的登录名 shell 是 /usr/bin/git-shell pub/priv 已在 client/server 端设置和测试 ssh 密钥。

现在我正在尝试使用 git-receive-pack 验证设置,但它总是失败 fatal: bad argument

kalou@client:~$ ssh git@0 git-receive-pack mimpi.git
Enter passphrase for key '/home/kalou/.ssh/id_rsa':
fatal: bad argument

我尝试在 mimpi.git 周围加上单引号,但没有成功 (https://github.com/dulwich/dulwich/issues/365)

我试图 运行 strace -f sshd 跟随 git-shell 的执行,但在之后没有发现任何有意义的东西:

17882 execve("/usr/bin/git-shell", ["git-shell", "-c", "git-receive-pack /home/git/mimpi"...], [/* 9 vars */]) = 0

fatal: bad argument" ...

之前

有什么想法吗?

git-shell 的取消引用非常有限。您应该只用单引号引用您的存储库:

$ ssh git@0 "git-receive-pack 'mimpi.git'"

我不确定你是否应该完全像这样使用 ssh,但至少 运行 git shell 在本地以这种方式成功:

git shell -c "git-receive-pack '.'"
..lists references...