自建git仓库

自建git仓库

2016/1/10

1.云服务器上创建用户 git:

# adduser git

2.在git家目录/home/git/*下创建目录.ssh 并创建authorized_keys文件:

# mkdir /home/git/.ssh/
# vim /home/git/.ssh/authorized_keys

3.修改目录属主和权限:

# chown -R git:git /home/git/.ssh/
# chmod 700 /home/git/.ssh
# chmod 600 /home/git/.ssh/authorized_keys

4.在/srv/ 下创建裸仓 sample.git :

# mkdir /srv/sample.git
# chown -R git:git /srv/sample.git
# git init --bare sample.git //本条命令在 /srv 下输入

5.禁止git 的 shell 登陆:

文件 /etc/passwd 下有类似一行

git:x:1001:1001:,,,:/home/git:/bin/bash

修改为:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

执行su git ,若报如下错,

fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.

则进行这步,

将目录/usr/share/doc/git/contrib/git-shell-commands拷贝到git用户下/home/git/
修改所有者chown -R git.git git-shell-commands
如果该目录下的helplist没有执行权,那么再给它加执行权
chmod +x /home/git/git-shell-commands/help
chmod +x /home/git/git-shell-commands/list

6.在本地git客户端生成ssh key,并把公钥拷贝到/home/git/.ssh/authorized_keys

关于,ssh key 可以参看 git ssh-key

这样就可以通过 git clone命令来获取服务器上的仓库 :

$ git clone git@server:/srv/sample.git

### 自建 Git 服务的概念 自建 Git 服务是指在组织或个人控制的基础设施上部署 Git 服务器,以实现私有代码仓库的创建、管理和访问控制。与使用第三方平台(如 GitHub、GitLab.com)不同,自建 Git 服务允许用户完全掌控代码存储、权限分配、备份策略和网络安全性,适用于对数据隐私有严格要求的场景。此类服务可以通过多种方式实现,包括使用 Git 自带的 SSH 模式、Gitolite 等专用工具,或通过集成管理平台如 Gitblit 和 Gitea 等部署[^1]。 ### 搭建私有 Git 服务器的方法 搭建私有 Git 服务器通常涉及以下几个核心步骤,具体实现方式取决于所选工具和技术栈。 #### 使用 Git + SSH 模式 该方法基于 Git 自带的 SSH 协议实现基础的版本库访问控制。首先在 Linux 系统中安装 Git 并创建专用用户,如 `git`,用于管理所有仓库。随后,客户端通过 SSH 密钥认证方式连接服务器并进行代码推送与拉取操作。此方法适合小型团队或对权限管理要求不高的场景[^2]。 ```bash # 安装 Git(适用于 Debian/Ubuntu) sudo apt-get update && sudo apt-get install git # 创建 Git 用户 sudo adduser git ``` #### 使用 Gitolite 进行权限管理 Gitolite 是基于 Git 和 SSH 的增强型权限管理工具,支持细粒度的用户访问控制。它通过配置文件定义仓库和用户权限,能够实现对特定分支和路径的读写限制。Gitolite 的部署流程包括在服务器端安装 Gitolite 并导入管理员公钥,之后通过推送配置文件实现权限变更。 #### 使用 Gitblit 部署 Web 管理界面 Gitblit 是一个基于 Java 的轻量级 Git 服务器,提供图形化界面用于仓库管理、用户授权和访问控制。部署 Gitblit 时需先解压安装包并配置运行环境,随后通过浏览器访问其 Web 界面创建仓库和用户。Gitblit 支持 HTTPS、SSH 和 Git 协议,适合希望快速搭建并具备可视化管理能力的用户。 #### 使用 Docker 容器化部署 Docker 提供了一种快速部署 Git 服务的方式,尤其适用于希望在本地或私有云环境中快速构建可重复使用的 Git 服务器实例。通过预配置的 Docker 镜像(如 Gitea 或 Gitblit),可以轻松映射所需端口(如 8080、8443、9418 等),实现私有 Git 服务的快速上线[^3]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值