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

  • 准备一下
  • 安装Git
  • 添加Git管理账户/账户和密码
  • 配置Git的SSH访问
    • 配置SSH访问
    • 客户端生成ssh私钥上传服务器
    • 服务器将上传的私钥添加到服务器的秘钥验证文件中
    • 客户端验证连接
  • 服务器端创建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、将生成的私钥上传到服务器
可以使用ftp或者scp等方式上传,对于上传我就阐述了,方式有很多
或者
将生成的秘钥文件内的值,发送到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。

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

使用Git搭建自己的私有/个人Git仓库相关推荐

  1. CentOS6/7/8搭建企业内部私有yum源仓库服务器

    yum私有仓库 内网服务器禁止访问互联网, 但yum安装需要依赖yum源仓库. 在内部网络部署私有yum源仓库, 不但可以保证内网服务器安全, 还可以提高yum查询.下载.安装速度 思路: 把仓库文件 ...

  2. Git 搭建私有仓库

    简介: 如果你不想把自己的代码公开让别人阅读.使用,也不想花钱购买 GitHub 私有仓库,那么你就需要自己动手做一个了. 当然你也可以使用 Coding.net ,上面可以创建免费的私有仓库.( 今 ...

  3. Git搭建私有服务器

    环境:Linux7.0最小版   git2.22.0 一.git服务器介绍 远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改.GitHub就是一个免费托管开源代码的远程仓库. ...

  4. linux git 搭建 debian,基于Debian Linux搭建Git服务器

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 因为一些众所周知的原因,某些项目不适合开源(代码写的烂我会乱说?(╯﹏╰)b ).又因为博主不是壕,买不起Github的 ...

  5. Git -- 搭建git服务器

    在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想 ...

  6. 使用docsify+Git搭建自己的WiKi网站

    本文主要内容: 0. 前言 1. 要求 2. 快速安装docsify 3. 自定义配置项 3.1 修改主页内容 3.2 定制侧边栏 3.3 定制导航栏 3.4 增加标题与Git右上角标 3.5 增加搜 ...

  7. git config设置用户名_hexo和git搭建博客过程

    效果图 手机端 和电脑 自动更换背景 搭建自己的博客(一) 前序: 折腾了几天,搞出了git加hexo的博客(带有评论功能),再次记录一下此次搭建的过程.先看看成品: https://g-ncp.gi ...

  8. Linux:搭建GIT服务,Linux中使用git,git基础命令,和原理

    目录 GIT GIT安装 Git概念 Git使用 Git的文件分类 提交代码 Git提交代码总结 增加补充代码 diff 查看纤细修改内容 HEAD 检出[checkout]​​​​​​ 重置[res ...

  9. git服务器搭建用账号和密码,git服务器搭建过程

    参考网上资料搭建git过程记录如下: 需求 硬件需求:一台Ubuntu,能通过网络访问到.软件需求:git-core, gitosis, openssh-server, openssh-client ...

最新文章

  1. 使用LinkedBlockingQueue来实现生产者消费者的例子
  2. qt获得 cpu 主频信息_高主频有什么用?我们玩了几款3A大作找到答案
  3. SpringCloud+OAuth2+Redis实现的微服务统一认证授权
  4. 数论基础之组合数计数问题
  5. html radio 去掉圆点,html radio默认选中,去除选中
  6. 建立SAP Router后,开放SAP访问的步骤
  7. java数组冒泡排序法编程_java实现数组冒泡排序的方法
  8. Google API 设计指南-兼容性
  9. 【Linux 应用编程】进程管理 - 进程、线程和程序
  10. JavaScript中的语言结构知识点总结(附实例、图解)
  11. 通信原理基础概念概述
  12. 声笔飞码6.00版使用指南
  13. LPVOID傳遞參數的問題
  14. 如何注册邮箱163,有几个邮箱登录入口?
  15. 一个不错的控件网站-慧都控件网
  16. windows防火墙是干什么的_我可以用windows防火墙做什么
  17. 【LeetCode】不含重复字符的最长子字符串
  18. c语言编程工具栏没有了,2009计算机二级C语言:工具栏,可拖动,并在被隐藏的地方显示的实现代码...
  19. 矿泉水瓶勿重复使用易得癌病
  20. 有什么可以将word转换成pdf的免费转换工具?

热门文章

  1. 如何在微信小程序中使用.ttf字体
  2. 硬核科技加持!红魔5S为手游玩家带来电竞级体验
  3. 利用TeamViewer实现电脑和手机端文件互传
  4. 利用IPV6免费服务器实现远程办公(EUserv)
  5. linux命令dpkg安装deb文件和卸载应用
  6. Excel 表格如何设置时间提前提醒,并且变化颜色
  7. Ubuntu16.04 定时开关机设置(亲测)
  8. script为啥被翻译成脚本
  9. yocto 菜谱bb的选择
  10. 双卡双待手机DDS切换功能介绍