基于SSH的Git服务器端配置

风行水上 @ 2013-12-13 15:06:09
标签:

想在自己的服务器上配置一个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 操作可以顺利进行
  • 允许登录到git-shell以进行更多操作
    • 只能执行$HOME/git-shell-commands/目录下的命令
标签:

分享到:
comments powered by Disqus

26/28ms