请确保您切换到了root账户
yum install -y git
验证是否安装成功
git --version
添加git的管理的账户和设置密码
添加git账户
adduser git
修改git的密码
passwd git
然后两次输入git的密码确认后。
查看git是否安装成功
cd /home && ls -al
初始化git仓库
进入git账号的用户主目录。
cd /home/git
git init --bare project1.git
chown git:git project1.git -R
git init --bare 是在当前目录创建一个裸仓库,也就是说没有工作区的文件,直接把git仓库隐藏的文件放在当前目录下,此目录仅用于存储仓库的历史版本等数据。
此时,客户端就可以进行clone或者remote add此仓库了。
配置服务端的ssh访问
#进入 git账户的主目录
cd /home/git
#创建.ssh的配置,如果此文件夹已经存在请忽略此步。
mkdir .ssh
#进入刚创建的.ssh目录并创建authorized_keys文件,此文件存放客户端远程访问的 ssh的公钥。
cd /home/git/.ssh
touch authorized_keys
#设置权限,此步骤不能省略,而且权限值也不要改,不然会报错。
chmod 700 /home/git/.ssh/
chmod 600 /home/git/.ssh/authorized_keys
chown git:git .ssh -R
此时,服务端的配置基本完成。接下需要把客户端的公钥拷贝到authorized_keys文件中。
git clone git@192.168.122.12:/data/git/project1.git
禁止客户端shell登录
修改/etc/passwd
文件
把 bin/sh 改为/usr/bin/git-shell
(或者用 which git-shell
查看它的实际安装路径)。该行修改后的样子如下:
找到这句, 注意1000可能是别的数字
git:x:1000:1000::/home/git:/bin/bash
改为:
git:x:1000:1000::/home/git:/usr/bin/git-shell
最好不要直接改,可以先复制一行,然后注释掉一行,修改一行,保留原始的,这就是经验!!!
好了,此时我们就不用担心客户端通过shell登录,只允许使用git-shell进行管理git的仓库。