这两天想要搭建一个自己的git私有代码库,手边有一个阿里云的服务器,就顺手搭建了一下,操作系统为CentOS 6.5
安装git
yum install -y git
创建相应用户组及用户
useradd git //添加用户git
passwd git //设置密码
groupadd git //添加用户组git
usermod -aG git git //将git用户添加进git组中
创建存储数据的文件夹
cd /home/git //进入git用户家目录
mkdir data //创建data文件夹
cd data //进入到data文件夹
初始化git仓库
建立一个名为hangl的空git仓库
同时将该仓库的所有者更改为git
git init --bare hangl.git //创建一个名为hangl的空git
chown git:git hangl.git //将hangl.git的所有者改为git组下的git用户
创建SSH Key
到上一步初始化git仓库完成后,就已经完成一个git应用的创建了,但这种情况下每次均需要输入密码,为了不用输入密码,需要再做以下操作:
mkdir /home/.ssh
cd /home/.ssh
vim authorized_keys
如果之前git并未生成过key,则输入ssh-keygen命令,然后依次填入命令行上让你输入的内容。完成后生成key内容并保存在用户目录的.ssh文件夹下(如win10在C:\Users\你的用户名\.ssh
)
找到本机的git的pub文件,拷贝出其中的内容,写入服务器上的authorized_keys文件内,然后保存
此时如果之前服务器上并未开启RSA验证,则仍然无法登陆,需要打开RSA认证:
vim /etc/ssh/sshd_config
找到被注释的下面的代码,然后取消如下注释
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启sshd服务:
/etc/init.d/sshd restart
至此就已经实现免输密码的过程
安全
出于安全考虑,我们不应当允许任何普通用户删除git库内的内容,所以需要禁用git用户,进行如下操作:
vim /etc/passwd
将
git:x:504:504::/home/git:/bin/bash
改为
git:x:504:504::/home/git:/user/bin/git-shell
即可。
这样便实现了只允许执行git-shell命令但不允许用户登录的目的