Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

git服务器简单搭建 #8

Open
arcsin1 opened this issue Jan 16, 2017 · 0 comments
Open

git服务器简单搭建 #8

arcsin1 opened this issue Jan 16, 2017 · 0 comments
Labels

Comments

@arcsin1
Copy link
Owner

arcsin1 commented Jan 16, 2017

搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。假设你已经有sudo权限的用户账号,下面,正式开始安装。(我用的ubuntu)

1、安装git

$ sudo apt-get install git

2、创建一个git用户,用来运行git服务

$ sudo adduser git

3、创建证书登录

收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

4、初始化Git仓库

先选定一个目录作为Git仓库,假定是sample.git,在~目录下输入命令:
$ git init --bare sample.git

5、禁用shell登录

出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。所以,当退出git用户登录之后,不能再切换到git。下次创建仓库时需要通过其他用户,然后将目录更改为git和其组
git init --bare test.git && chown -R git:git test.git

6、克隆远程仓库

现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行
$ git clone git@server:~/sample.git
Cloning into 'sample'...warning: You appear to have cloned an empty repository.

剩下的推送就简单了。 管理公钥如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。Gitosis,我就不介绍了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant