自建git仓库
2016/1/10
1.云服务器上创建用户 git:
# adduser git
2.在git家目录/home/git/*
下创建目录.ssh
并创建authorized_keys文件:
# mkdir /home/git/.ssh/
# vim /home/git/.ssh/authorized_keys
3.修改目录属主和权限:
# chown -R git:git /home/git/.ssh/
# chmod 700 /home/git/.ssh
# chmod 600 /home/git/.ssh/authorized_keys
4.在/srv/
下创建裸仓 sample.git
:
# mkdir /srv/sample.git
# chown -R git:git /srv/sample.git
# git init --bare sample.git //本条命令在 /srv 下输入
5.禁止git 的 shell 登陆:
文件 /etc/passwd
下有类似一行
git:x:1001:1001:,,,:/home/git:/bin/bash
修改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
执行su git
,若报如下错,
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
则进行这步,
将目录/usr/share/doc/git/contrib/git-shell-commands
拷贝到git用户下/home/git/
修改所有者chown -R git.git git-shell-commands
如果该目录下的help
和list
没有执行权,那么再给它加执行权
chmod +x /home/git/git-shell-commands/help
chmod +x /home/git/git-shell-commands/list
6.在本地git客户端生成ssh key,并把公钥拷贝到/home/git/.ssh/authorized_keys
关于,ssh key
可以参看 git ssh-key
这样就可以通过 git clone
命令来获取服务器上的仓库 :
$ git clone git@server:/srv/sample.git