使用Git搭建自己的私有/个人Git仓库


现在git的代码仓库有很多,如:github、Coding……都是git类型的代码管理,但是在团队中或者公司内部不想用公网上的仓库,需要使用独立的代码管理仓库,这时就需要自己搭建Git仓库。下面就介绍一下如何在CentOS 7上搭建Git仓库,其他系统的服务器大同小异,主要是了解这个方式、流程。我也会在文章中介绍我在这个过程中遇到的各种问题以及解决方式。如果大家在过程中遇到其他问题,麻烦留言或评论。

准备一下

系统:CentOS 7.2 64位
工具(家伙式):ssh
一般CentOS都带有OpenSSH,如果没有可以使用yum安装一下

yum install openssh.x86_64

检查是否有ssh

ssh -V
# 输出如下信息表示没问题
# OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

安装Git

目前操作需要在root用户下

su root
yum install -y git

或者到官方的镜像下载想要的版本,自行构建
https://mirrors.edge.kernel.org/pub/software/scm/git/

git version
# 输出如下即可
git version *.*.*

添加Git管理账户/账户和密码

设置一个专门用来管理Git的用户不是必须的,但是建议这么做

# 添加名为git的账户
adduser git
# 修改用户密码
passwd git
# 输入两次密码确认即可

# 查看git用户是否创建成功
cd /home && ls -al
# 列表显示有git,那么表示创建成功,一般还会给分配一个git的组
drwx------  10 git  git  4096 Apr  4 00:26 git

新建用户并添加到组:useradd –g 组名 用户名

配置Git的SSH访问

上面的都准备好了,就需要设置权限和访问方式了,这里只介绍ssh的方式,https的方式暂时不介绍,https的方式就是通过连接的git用户的用户名、密码的方式验证,ssh是可以使用ssh的秘钥验证的(https方式的可以直接翻到下面:服务器端创建git仓库目录继续进行);

配置SSH访问

切换到git账户下,然后创建ssh的默认目录和校验公钥的配置文件

# 切换用户
su git
# 进入用户主目录
cd /home/git

# 创建.ssh配置目录,如果有此文件夹,跳过此步
mkdir .ssh

# 进入.ssh目录并创建authorized_keys文件,用来存放用户访问的ssh公钥
cd /home/git/.ssh
touch authorized_keys

# 设置该目录及authorized_keys文件的权限,权限值不要修改
chmod 700 /home/git/.ssh/
chmod 600 /home/git/.ssh/authorized_keys

此时服务器上的用户ssh信息配置完成,接下来是需要将用户端的公钥生成并上传到服务器上

客户端生成ssh私钥上传服务器

以下是客户端创建私钥并上传到服务器的过程,如果有私钥了就跳过创建私钥的过程,否则如果别的服务正在使用该秘钥,你重新生成会导致原来的服务无法使用;
客户端也需要安装git,安装过程根据系统选择合适的安装方式 https://git-scm.com/
1、首先检查本地是否有ssh的公钥和私钥,不同系统的查看的位置不同:
Windows系统:C:\Users\用户名
Linux系统:/home/用户名
Mac系统:/Users/用户名
然后检查目录下是否有.ssh文件夹,然后此文件夹下是否有一下文件
.ssh
├── id_rsa # 这是私钥要保密
└── id_rsa.pub # 我们要用的个人公钥
2、如果没有,使用如下命令生成ssh的私钥

ssh-keygen -t rsa

然后三个回车即可,如果填写了内容自己记住即可
创建成功后,查看用户的.ssh目录下是否有了公钥、私钥文件。
3、将生成的.pub公钥上传到服务器
可以使用ftp或者scp等方式上传,对于上传我就阐述了,方式有很多
或者
将生成的.pub公钥文件内的值,发送到git管理员

服务器将上传的公钥添加到服务器的秘钥验证文件中

在服务器获得到用户的公钥文件或者公钥值后,需要将其添加到authorized_keys文件中,然后启用RSA认证就可以允许客户端使用ssh访问了。

# 切换到git用户
su git
# 进入.ssh目录
cd  /home/git/.ssh
# 将用户公钥文件内容追加到authorized_keys文件。或者将用户公钥写入authorized_keys文件
cat id_rsa.pub >> authorized_keys
# >> 是在文件后面追加的意思,如果用其他编辑器,每个ssh的pub注意要单独一行,建议用cat命令方便简单。
# git服务器打开RSA认证
vi /etc/ssh/sshd_config
# 下面3个打开注释或添加
 1.RSAAuthentication yes     
 2.PubkeyAuthentication yes     
 3.AuthorizedKeysFile  .ssh/authorized_keys

客户端验证连接

ssh git账号名@服务器IP 

第一次连接有警告,输入yes继续即可。如果可以连接上,那么恭喜你的ssh配置已经可以了。

注:如果提示需要密码,请检测公钥是否配置成功或RSA是否开启。

服务器端创建git仓库

ssh的验证都配置好了,也可以连接了,就差使用git初始化仓库了

# 切换到git用户
su git
# 进入用户目录,将git目录设置成为git用户所有
cd /home/
chown git:git git
# 创建git仓库
mkdir test.git
# 进入仓库的目录,将仓库设置为git用户所有
cd test.git
chown -R git:git test.git
# 初始化git仓库
git init --bare
# 输出如下,表示成功
Initialized empty Git repository in /home/git/test.git/

到此,git服务器搭建完毕。
此时,客户端就可以进行clone或者remote add此仓库了。

# git克隆使用的地址(补充)
git clone 用户名@服务器IP:/相对用户根目录的git仓库绝对路径/git仓库名.git
# 如: git clone git@10.0.0.10:/user/local/gitRepo/test.git
如果ssh验证成功就直接进行clone了,https的方式会提示输入用户名、密码,如果ssh也提示输入用户名密码,请验证ssh过程是否正确

git init --bare
是git命令,是在当前目录创建一个裸仓库,也就是说没有工作区的文件,直接把git仓库隐藏的文件放在当前目录下,此目录仅用于存储仓库的历史版本等数据。

以后每创建一个新的仓库,记得最后一步操作: 修改仓库所属用户为git。

如有疑问,请留言,写的不好但是希望能够对大家有所帮助,也能在讨论中互相提高

### 回答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服务器,您就可以安全地管理您的代码库了。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值