title 在centOS部署自己的代码库

参照网上的一些教程,总结一份较好的方案

1.安装git

1
yum install -y git

2.添加用户/用户组

创建一个git用户组,和git用户
因为考虑到可能会和多人共用git代码库,所以建立一个专门的分享系统用户给开发者们。

1
2
3
sudo groupadd git
sudo adduser git -g git
sudo passwd git

1
vim /etc/passwd


git:x:1001:1001:,,,:/home/git:/bin/bash
修改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
让git用户只能使用git-shell进行git相关的操作

ssh登录

在参考网上的一些

  1. 开启服务器RSA验证
    1
    vim /etc/ssh/sshd_config

找到并去掉前面的#号

1
2
3
4
5
6
7
RSAAuthentication yes
PubkeyAuthentication yes
RSAAuthentication yes
RSAAuthentication #设置是否允许只有RSA安全验证。
PasswordAuthentication
PasswordAuthentication yes #PasswordAuthentication”设置是否允许口令验证。
AuthorizedKeysFile .ssh/authorized_keys

  1. 配置RSA公钥
    如果使用的是非root用户需要切换到git用户,才有权限对/home/git下的文件进行操作
1
su - git #切换用户

创建authorized_keys文件,用于配置开发者的公钥

1
2
3
4
5
cd /home/git/
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys

  1. 客户端生成公钥
    1
    2
    ssh-keygen -t rsa -C "youremail@your.com" -f ~/.ssh/my-rsa #生成公钥,并指定文件名
    cat ~/.ssh/my-rsa.pub # 复制里面的内容,粘贴到服务器的authorized_keys中去

验证

创建git中央仓库
1.进入git用户主目录

cd /home/git
2.创建一个裸仓库 (一般以.git结尾)

git init –bare test.git #以test.git为例子,当然你可以叫任意名字
裸仓库是没有工作区的,纯粹为了共享

3.修改仓库用户属主

chown -R git:git test.git

1
git clone git@xxx.xxx.xxx.xxx:test.git

1、查看git-shell的位置

which git-shell
得到的位置:/usr/bin/git-shell

2、将git-shell添加到shell当中
1)vim /etc/shells
2)/usr/bin/git-shell 将这写到 /etc/shells的最后一行

3、更改git用户使用的shell
chsh git
到此位置git的用户权限已全部设置完成