Git接收包致命

时间:2018-11-25 16:52:25

标签: git git-shell

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

现在,我正尝试使用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" ...

之前

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

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

我不确定您是否应该完全像这样使用ssh进行操作,但是至少在本地运行git shell可以成功:

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