我已经在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" ...
有什么想法吗?
答案 0 :(得分:1)
git-shell
的取消引号非常有限。您应该只用单引号对存储库进行引用:
$ ssh git@0 "git-receive-pack 'mimpi.git'"
我不确定您是否应该完全像这样使用ssh进行操作,但是至少在本地运行git shell可以成功:
git shell -c "git-receive-pack '.'"
..lists references...