想在自己的服务器上配置一个Git“服务器”,光放文档上比较正式的做法是创建一个专门的用户git
。
实践中,不是每个人都有权限创建新用户,基本上也就是有普通的SSH访问权限而已。
经过自己的尝试,下面是一个相对简单可行的方法:
文件:~/.ssh/authorized_keys
command="/home/user/repo-server/bin/git-shell" ssh-rsa ... ...
自定义的git-shell
的内容:
#!/bin/bash HOME=/home/user/repo-server GIT_CEILING_DIRECTORIES=$HOME export GIT_CEILING_DIRECTORIES cd $GIT_CEILING_DIRECTORIES if [ -z "$SSH_ORIGINAL_COMMAND" ]; then /usr/bin/git-shell else /usr/bin/git-shell -c "$SSH_ORIGINAL_COMMAND" fi
git push/pull
操作可以顺利进行$HOME/git-shell-commands/
目录下的命令