header

git server搭建

git server
安装git和openssh:
# sudo apt-get install git-core openssh-server openssh-client
sudo apt-get install git
 
新加用户git, 该用户将作为所有代码仓库和用户权限的管理者:
# sudo useradd -m git
# sudo passwd git
# (输入新git的密码)
sudo adduser git

 

收集git客户端信任的id_rsa.pub文件到git用户目录的这个文件里面 /home/git/.ssh/authorized_keys,

(注 /home/git目录、git仓库目录、git仓库目录里面hook执行的命令权限,也跟git用户权限有关,都应该所属git:git用户:组) 
 
 
建立一个git仓库的存储点:
# cd /home
# sudo mkdir -p /home/git/store
 
让除了git以外的用户对此目录无任何权限:
# sudo chown git:git /home/git
# sudo chmod 755 /home/git
 
 
初始化git仓库

# cd /home/git/store

# git --bare init

到此服务器git项目已经初始化完毕

 

禁止git用户ssh登陆

vi /etc/passwd
如下修改
#git:x:1001:1001:,,,:/home/git:/bin/bash
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

 

配置多个git用户提交代码可以新建一个groups

groupadd gitgroup

然后分别把每个git用户加到该group里面

usermod -G gitgroup -a username

刷一下git server库的权限

sudo chown -R git:gitgroup /home/git

 

 

git 免密登入

设置 ssh 授权文件的路径,编辑 sshd_config 打开 AuthorizedKeysFile 注释并设置文件路径,注意:authorized_keys文件的权限300,文件所属的用户,就是可以免密登录的用户

vi /etc/ssh/sshd_config

AuthorizedKeysFile      /usr/loganv/.ssh/authorized_keys

 

创建文件和路径

mkdir -p /usr/loganv/.ssh/

cd /usr/loganv/.ssh/

echo "" > authorized_keys

 

把客户端生成的ssh公钥拷贝到当前目录,然后把内容添加到 authorized_keys里面

cat id_rsa.pub >> authorized_keys

 

git hook 

设置 git hook,到git 仓库下,编辑post-receive

cd /home/git/store

vi hooks/post-receive

添加下面内容到post-receive,

export LANG=zh_CN.UTF-8
unset GIT_DIR
cd /opt/path/git-client
git pull origin master

 

 

 

git client 

初始化git项目

不忽略文件大小写:git config core.ignorecase false

# cd /opt/lampp/htdocs/llc

# git init

# git add .

# git commit -m "新建git库"

# git remote add origin ssh://<你的IP>/home/git/store/

# git push origin master

 

 

 

 

posted @ 2014-09-16 14:12  loganv  阅读(255)  评论(0)    收藏  举报
footer