Ubuntun下GIT服务器的建立

使用环境:小团队

安装openssh-server, git

1
2
sudo apt-get install git
sudo apt-get install openssh-server

添加git账号

这儿方案中,所有的人共享一个账号,即git账号:
sudo adduser git
按照提示设置账号内容,密码等。

配置登陆认证

使用公钥来避免每次都需要输入密码的麻烦。可以给每个用户配置一个不同的公钥。

这里直接在Ubuntu上为用户生成公钥-密钥对,把公钥加入认证文件,密钥发给用户。
ssh-keygen
为不同的用户指定不同的文件名,比如:id_rsa.wxue,将生成id_rsa.wxue和id_rsa.wxue.pub。

1
2
cat .ssh/id_rsa.wxue.pub
/home/git/.ssh/authorized_keys

这些密钥可以用来登陆git账号了。

创建GIT仓库

把git的仓库放在/opt/gitrepo下

1
2
3
4
5
6
cd /opt
mkdri gitrepo
cd gitrepo
mkdir project.git
cd project.git
git --bare init

修改权限

现在git账号的权限,只能做git相关的操作
sudo vim /etc/passwd
把git的shell从/bin/bash改为/usr/bin/git-shell

客户端配置

  1. 说说在osx下的配置,其他linux系统也是一样。
    把相关用户的密钥放在它电脑的.ssh目录下,然后编辑或是创建config文件
    $ vim ~/.ssh/config
    在config文件中加入如下内容:
    1
    2
    Host 192.168.1.222 192.168.1.222
    IdentityFile ~/.ssh/id_rsa.wxue

如果只有一个id_rsa密钥文件,也可以不创建config文件。

修改config文件的属性
$ chmod 644 ~/.ssh/config
文件的目录也可以做一下限制,只有git帐号才可以打开:
$ sudo chown git:git gitrepo

  1. windows下的配置
    Windows下一般使用图形化工具TortoiseGit。TortoiseGit如果使用plink则无法使用id_rsa,需要转换从PuTTY Key Generator格式的ppk密钥。在TortoiseGit目录下可以找到PuTTY Key Generator工具,把id_rsa导入进去,并保存成ppk文件,放在用户目录的.ssh目录下。

还没完,还需要在TortoiseGit目录中找到Pageant程序,把ppk文件加入到里面。或者,在添加remote的时候,把ppk绑定进来。