简单搭建一个私有Git服务器

本文是对 廖雪峰官方网站 - 搭建Git服务器 的实践。

常用的git使用方法 GIT CHEAT SHEET

1. 前言

我是用我的云服务器来作为Git服务器的。有一点需要注意,使用的是该云服务器的公网ip哦。

2. 安装git

# ubuntu系统
~$ sudo apt-get install git
# centos系统
~$ sudo yum install git

3. 创建git用户

git用户是专门用来运行git服务的。

~$ sudo adduser git

4. 创建证书登录

将所有需要用到这个Git仓库的用户的SSH公钥保存到Git服务器中的/home/git/.ssh/authorized_keys。刚开始.ssh这个目录可能并不存在,创建一个就行了,然后把所有用户的公钥(通常为/home/用户名/.ssh/id_rsa.pub)保存在authorized_keys文件中即可。

若你的电脑中没有/home/用户名/.ssh/id_rsa.pub,那么需要生成。

~$ ssh-keygen -t rsa -C "youremail@example.com"

5. 创建一个Git仓库

首先,要明白的是,Git仓库到底是个什么东西? 归根结底就是一个目录而已。

创建一个/home/git/myGitServer/sample.git目录作为一个仓库。

~$ sudo git init --bare sample.git

通过--bare参数创建的是一个裸仓库。裸仓库就是没有工作区的仓库。这是因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。

修改sample.git目录的权限

~$ sudo chown -R git:git sample.git

6. 禁用shell登录

为什么要禁用shell登录?这是出于安全方面的考虑。git用户应该只允许使用git-shell,而不能使用/bin/bash。在/etc/passwd文件中找到git用户,把/bin/bash直接修改成/usr/bin/git-shell

~$ sudo vim /etc/passwd
# 将 git:x:1001:1001:,,,:/home/git:/bin/bash 改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样git用户可以正常通过ssh使用git(因为git pushgit pull这些操作都是基于ssh协议的),但无法登录shell。

7. 试试看

现在就可以将这个Git服务器当作github来使用了。在你的电脑上使用git来克隆服务器上的sample.git中的代码。

sjl@DESKTOP-BL7A7IA:~$ git clone git@Git服务器的ip:/home/myGitServer/sample.git
Cloning into 'sample'...
git@X.113.189.175's password:
warning: You appear to have cloned an empty repository.

让我们用ssh来连接看看

sjl@DESKTOP-BL7A7IA:~$ ssh git@x.113.189.175

git@x.113.189.175's password:
Last login: Wed Jun 10 18:33:37 2020
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to x.113..189.175 closed.

很明显,使用git用户登录失败了,那么使用root用户试试呢

sjl@DESKTOP-BL7A7IA:~$ ssh root@x.113.189.175
root@x.113.189.175's password:
Last failed login: Wed Jun 10 20:51:31 CST 2020 from 218.85.119.92 on ssh:notty
There were 278 failed login attempts since the last successful login.
Last login: Wed Jun 10 18:33:52 2020 from 106.39.148.254

登录成功了。

现在可以将该仓库作为的你的远程仓库使用了。

~$ git remote add mygithub git@Git服务器的ip:/home/myGitServer/sample.git

~$ git remote
mygithub

如果不需要私有的Git服务器,那么直接使用Github就好了,如果嫌Github网速慢,使用国内版 Gitee
要方便管理公钥,用Gitosis
要像SVN那样变态地控制权限,用Gitolite

8. 扩展

有些同学可能还知道另外一个代码托管网站 GitLab,那么GitLabGitHub有啥区别呢?

下面这一段来自博客 GitHub与GitLab的区别以及GitLab的搭建与使用

GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(https://github.com/gitlabhq/gitlabhq 基于MIT协议),与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。

我们前面所搭建的Git服务器,只能push,pull代码,没有其他注册用户等功能,说直白点就是没有一个像GitHub这样的网站来管理,因此才需要用到GitLab。要搭建GitLab还是参考这篇博客 GitHub与GitLab的区别以及GitLab的搭建与使用

参考文献

[1] 廖雪峰官方网站 - 搭建Git服务器
[2] Git官方网站的Book教程 可以选择中文哦
[3] GitHub与GitLab的区别以及GitLab的搭建与使用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要搭建一个私有Git 服务器,基本步骤如下: 1. 安装 Git:在 Linux 服务器上执行命令 sudo apt-get install git 即可安装 Git。 2. 创建 Git 用户:执行命令 sudo adduser git 创建用户名为 git 的新用户。 3. 初始化 Git 仓库:在 git 用户的 home 目录下创建存放 Git 仓库的目录,并在此目录下执行 git init --bare <仓库名>.git 命令来创建一个裸仓库。其中,<仓库名> 可以自己定义。 4. 配置 SSH:在 Git 用户的 home 目录下,创建 .ssh 目录并将 SSH 公钥文件 id_rsa.pub 添加到 authorized_keys 文件中。这样就可以使用 SSH 协议来访问 Git 服务。 5. 设置访问权限:在 Git 仓库所在的目录下,执行命令 chown -R git:git <仓库名>.git 将目录的所有权赋予 git 用户,并执行命令 chmod -R 755 <仓库名>.git 修改权限。 6. 打开端口:如果使用 SSH 协议访问 Git 服务,则需要打开服务器端口。默认情况下,SSH 协议使用的端口为 22。 7. 测试:在客户端使用 Git 工具测试访问 Git 服务是否正常工作。 需要注意的是,搭建私有 Git 服务器需要具备一定的 Linux 和 Git 知识,建议在了解清楚操作流程和安全风险后再进行相关配置。 ### 回答2: 在Linux系统中,可以通过搭建私有Git服务器来进行代码的版本控制和团队协作。下面是一些搭建私有Git服务器的具体步骤和注意事项: 1. 安装Git 首先需要在Linux系统中安装Git。可以通过命令行输入sudo apt-get install git来安装Git。 2. 创建Git用户 为了保证数据的安全,最好创建一个专门的Git用户来管理Git服务器的安全。可以通过命令sudo adduser git来创建Git用户,并设置密码。 3. 初始化Git仓库 在Git用户下,通过命令行输入sudo mkdir /git,创建一个文件夹用于存放Git仓库,可以通过sudo chown git:git /git来给Git用户设定相应的权限。接下来,在/git文件夹下创建具体的Git仓库,可以通过命令sudo git init --bare /git/repo.git来创建一个名为repo.gitGit仓库。 4. 配置Git用户 为了保证Git服务器的安全,需要为Git用户配置SSH密钥。可以通过命令行输入sudo su git,然后通过ssh-keygen来生成相应的SSH公私钥,将公钥添加到到~/.ssh/authorized_keys文件中。这样,在使用Git客户端时,就可以使用SSH私钥来访问Git服务器了。 5. 完成 搭建私有Git服务器的过程非常简单,只需要几个简单的步骤就可以完成。最后,在Git客户端中,可以通过命令git remote add origin git@服务器IP地址:/git/repo.git来在Git客户端中添加一个指向Git服务器的远程仓库,然后,就可以使用Git工具进行版本管理和团队协作了。 需要注意的是,在搭建私有Git服务器时,需要考虑到数据的安全和权限的设置,避免不必要的数据丢失和权限泄露。同时,也需要注重Git客户端的配置和安全,避免恶意攻击和数据泄露。 ### 回答3: 搭建私有Git服务器是非常有必要的,特别是对于一些敏感的代码或是重要的开发项目。如果您想要搭建自己的Git服务器,那么Linux系统是您最佳的选择,因为它是开源的、免费的,而且以稳定和安全而著称。下面是一个简单介绍如何在Linux平台上搭建Git服务器的步骤。 第一步,安装Git。在Linux系统中,您可以使用Package Manager(包管理器)来安装Git。例如,在Debian和Ubuntu上,您可以使用以下命令安装Git: sudo apt-get install git-core 在安装完成后,您可以通过输入以下命令来检查Git是否安装成功:git --version 第二步,创建Git用户。在Linux系统中,您需要为Git服务创建一个专门的用户。首先,您需要使用以下命令来创建一个名为git的用户: sudo adduser git 接下来,您需要登录到git用户: sudo su git 然后创建一个名为.gitolite的目录: mkdir .gitolite cd .gitolite 接着,在该目录下执行以下命令以克隆Gitolite代码库: git clone git://github.com/sitaramc/gitolite 第三步,安装Gitolite。运行以下命令以安装Gitolite: gitolite/install -symlink 这将在/home/git/bin目录下安装Git服务,并创建一个.gitolite.rc配置文件。 第四步,管理Git仓库。您可以将Git仓库放到/home/git/repositories目录下,例如在/home/git/repositories下创建一个名为test.gitGit仓库: git init --bare /home/git/repositories/test.git 然后,您可以将Git仓库命名为任何您想要的名称。 第五步,配置Gitolite。在git用户的主目录下,创建一个名为.gitolite.rc的文件,其中指定您的Git仓库和访问权限等。 使用以下命令来添加一个新的协作者: git clone git@localhost:gitolite-admin.git cd gitolite-admin 编辑conf/gitolite.conf文件以添加新用户及其权限: repo test RW+ = user1 RW = user2 git commit -m "Added users and their permissions" git push origin master 第六步,测试Git服务器。使用以下命令来检查您的Git服务是否运行正常: ssh git@localhost info 现在,您就成功地在Linux系统中搭建了自己的Git服务器。如果您想要添加更多的Git仓库,您可以重复以上步骤即可。有了一个私有Git服务器,您就可以安全地管理您的代码库了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值