git服务器搭建

Git支持本地(local)、ssh、git和http(s)这四种协议进行传输,本部分将基于ssh协议搭建(此协议不利于开源,适合公司团队使用)。
本文操作大部分在Ubuntu服务器端完成。

1. 安装git
sudo apt-get install git

创建Git用户和用户组

sudo mkdir /var/git                 ###创建一个文件夹作为git用户的主目录
sudo chown git:git -R /var/git      ###让git账户对该文件夹拥有写权限
groupadd git                        ###创建组
useradd -g git -d /var/git git      ###创建用户

命令本省非常简单, 这里要解释的是为什么我们要创建这个git用户,这个用户不是为了运行Git而创建的专职用户,而仅仅是为了SSH访问而创建的。正如我们在前面“SSH协议”一节中提到的地址格式:

git clone user@gitserver:/path/to/my-project.git

这里的“user@gitserver”实质上就是SSH在登入时提供的用户和远程主机的命令行格式,所以说,既然我们需要使用SSH的方式登入并进行数据读写,总归是要有一个登入账户吧?OK,那就创建一个叫git专用账户来专门支持git的数据传输吧。

另外,我们把git用户的home目录设定为了/var/git, 用以区别一般的登入账户。而这个/var/git下,是放置所有repository的理想位置

2. 对于ssh协议,需要安装ssh-server
sudo apt-get install openssh-server openssh-client

安装完成后,需要对ssh服务器的参数进行配置:

$ sudo vim /etc/ssh/sshd_config

找到下面几行,去掉前面”#”注释,并设置:

StrictModes  no                                 ##在用户名和其公钥文件名不匹配时将通过验证
RSAAuthentication yes                           ##使用纯的RSA认证
PubkeyAuthentication yes                        ##允许Public Key认证 
AuthorizedKeysFile     %h/.ssh/authorized_keys  ##受信任的key文件

上面这个配置是设定免密码登陆的账号公钥存储路径

ps:如果是小团队,把每个人的公钥收集起来放到/home/git/.ssh/authorized_keys文件里问题不大;如果团队较大或是有权限要求,这种方式就很不灵活了,这时可以用Gitosis来管理公钥,我将在后文介绍。
接着重启ssh服务

$ sudo service ssh restart

或是

$ sudo /etc/init.d/ssh restart

ssh服务器到这里安装配置完毕。

3. ssh公私钥配置

首先配置服务端的公私钥:

ssh-keygen -t rsa

填写相应的信息后,默认会在主目录的.ssh隐藏文件夹下生成公私钥对:

id_rsa          ##私钥
id_rsa.pub      ##公钥

在.ssh目录下建立一个authorized_keys文件,用来记录受信任的客户端公钥:

touch authorized_keys

客户端同样通过ssh-keygen生成公私钥,并将公钥文件发给git服务器,如client_rsa.pub, git服务器将其内容追加到authorized_keys下

cat client_rsa.pub >> authorized_keys
4. 仓库的建立及拉取

服务器端建立工程并初始化project

su git
cd ~/
mkdir Project.git
cd Project.git
git --bare init

客户端通过ssh协议拉取

git clone git@192.168.21.6:/var/git/Project.git
cd Project
touch README.md
echo "this is a readme file" >> README.md
git add .
git commit -m "first commit"

推送到服务器

git remote add origin git@192.168.21.6:/var/git/Project.git ##添加远程仓库地址
git push origin master  ##推送

至此,一个供公司内部开发的git服务器搭建完成

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值