CentOS 7 下搭建git私人仓库

Posted on 2021-01-17 18:03  纷飞晴  阅读(159)  评论(0)    收藏  举报

一、准备工作
1.需要准备git客户端和服务端,客户端我是用的windows10,服务端用的是装在windows上linux虚拟机。
2.linux系统需要有ssh服务,一般CentOS 7系统安装后都会默认自带的。
3.客户端需要安装git,下载地址

二、开始搭建
1.安装git

在服务端输入下面的命令
yum install -y git

中间不需要按什么,一直等它安装完成。安装完成后输入下面的命令查看版本号,可以查看的到就算安装成功了
git --version

2.新建git用户

  • 添加用户
    useradd git

  • 修改用户密码
    passwd git

  • 先切换到git用户
    su git 输入密码进入

  • 新建.ssh目录
    mkdir .ssh

  • 新建authorized_keys文件
    touch ~/.ssh/authorized_keys

  • 修改权限
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys

3.初始化仓库文件

  • 新建仓库目录
    先进入到git用户的目录下
    mkdir -p Project/

  • 新建git仓库目录
    mkdir ./Project/test.git

  • 初始化git仓库
    git init --bare ./Project/test.git

三、生成密钥

  • 在windows系统上打开git bash,先生成个人用户信息
    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"

  • 生成公钥和密钥
    ssh-keygen -t rsa -C "你的邮箱"
    过程中可以一直按回车就行

  • 将本地公钥上传至git服务端上
    scp -r id_rsa.pub root@serverip:/home/git/.ssh/id_rsa.pub

  • 再将刚刚上传的公钥添加到authorized_keys里面
    cat id_rsa.pub >> authorized_keys
    到这一步就算是把git仓库搭建好了,可以开始使用了

四、克隆远程仓库到本地
在客户端上打开git bash,输入以下命令
git clone git@serverip:/data/Project/test.git

能够看到远程仓库的test目录被克隆下来就算是成功了。

五、限制git用户远程登陆
git用户现在是有权限通过ssh远程登陆服务器的,这个比较不安全,如果要限制git用户远程登陆的就需要以下操作
先切换到root用户下,然后打开/etc/passwd文件
vi /etc/passwd

找到git用户的那段信息

在最后面加上 -shell

保存退出即可
当切换git用户的时候你就会发现无法登录了

但是这个时候你发现你无法在客户端上通过git pull或者push项目代码了,这个时候就需要在进一步优化一下

  • 检查git-shell是否已经在shells文件中
    cat /etc/shells

  • 如果没有在里面,就找一下在哪个路径下
    which git-shell

路径找到之后,手动将这个路径添加到/etc/shells中,保存退出

  • 把git用户默认的shell替换成git-shell
    chsh git -s $(which git-shell)

好了,现在你就发现可以正常的pull和push项目了,但是无法用git用户远程ssh登陆。

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3