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

使用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/git/

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。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容