Linux centos7.* 搭建私有git服务器

Server:

第一步:配置git

1.1 从yum上安装git

yum –y install git

1.2 查看git版本:安装完成后,在服务器端输入

git --version

1.3 创建用户:在服务器中创建一个git专属用户


//以下为CentOS下的用户,账户密码自定义
useradd git
passwd  git 

1.4 禁止该git用户使用shell登录系统(为了安全性,一般都禁止)

vi /etc/passwd


 按i进入编辑模式,在最后一行将git用户修改成以下配置

git:x:1000:1000::/home/git:/usr/bin/git-shell

第二步:配置远程仓库

2.1 创建一个空仓库

我们选择在路径:cd  /home/ 下先创建一个用户目录,在用户目录下创建一个git仓库

cd /home   
mkdir git  
cd git   
git init --bare LearnProject.git

到这里,空仓库已经创建成功 ,仓库的路径为:/home/git/LearnProject.git

2.2 为刚刚创建的用户git赋予权限

输入以下命令,为git用户赋予权限


//chown -R 用户名:组名 文件
chown -R git:git LearnProject.git

第三步:打开 RSA 认证

进入/etc/ssh目录,编辑 sshd_config


cd  /etc/ssh 
vi ssh_config

 按i进入插入模式,打开以下三个配置的注释(带#为注释), 按ESC退出插入模式,按:wq保存


RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

保存完成后,重启sshd服务

/etc/rc.d/init.d/sshd restart
如果运行上述命令出现错误可换下面这个: 
service sshd restart

至此,服务器端git配置完成;

Client:

第一步:配置git

1.1 安装git

在Linux上参考服务器端安装git,在Windows下教程很多,安装也傻瓜式,这里不再赘述

1.2 打开git bash创建git使用者


git config --global user.name "test"
git config --global user.email "[email protected]"

1.3 创建与服务器通讯的密钥

在git bash中,输入以下命令,为自己的邮箱创建一个密钥

ssh-keygen -t rsa -C "[email protected]"

一路enter下去,如果原来有秘钥则覆盖即可

这时候,系统已经为我们创建了一个公钥和密钥,id_rsa是密钥,不能告诉任何人,id_rsa.pub是公钥,可以公开;

1.4 将本地的公钥添加到服务器上

1.4.1 通过客户端命令行将本地公钥添加进远程服务器中

在gitbash下,输入以下命令(ip地址换成你git服务器的地址)
 

 ssh [email protected] 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

1.4.2 手动将公钥添加到服务器中

在1.3中,我们创建了一个公钥,以Windows系统为例子,我们先找到这个文件。这个文件的路径在:

C:\Users\Administrator\.ssh\id_rsa.pub

用记事本的方式打开,我们会得到一串这样的东西

将以上Ctrl+A全选然后复制。

在服务器端,我们用vi编辑器访问authorized_keys,将以上信息粘贴进其中
 

vi /home/git/.ssh/authorized_keys

 然后:wq保存。

通过以上1.4.1和1.4.2两种方法,我们就将本地的公钥添加进服务器中了。如果发现该目录下没有.ssh文件,我们可以手动创建一个,并添加一个authorized_keys

 

第二步:克隆远程仓库

将远程空仓库克隆到本地

2.1 创建本地文件夹

假设我们在D:/gitRepo/gitTest下创建一个用于本地的git仓库文件夹

cd D:
mkdir gitRepo
cd gitRepo
mkdir gitTest

2.2 克隆远程仓库


//端口在22的情况下
git clone [email protected]:/home/git/LearnProject.git
 
//端口在非22的情况下(如5000)
git clone ssh://[email protected]:5000/home/git/LearnProject.git

这时候,bash会提示你克隆的仓库是空的

至此,我们就完成了远程仓库的克隆。

第三步:push/pull项目
做完以上服务器端/客户端各两步的内容,你的本地git已经可以和git服务器进行通信了,此时我们可以进行常规的项目push和pull了。

3.1 为仓库添加内容

这里我们随便把自己的一个项目丢进去(或者随意创建一个文件亦可,空文件夹git不会识别)

3.2 提交修改

进入LearnProject然后运行以下命令

git add .
git commit -m 初始化项目

这时候,我们就为本地创建了一次commit

3.3 push本地修改

运行以下命令

// origin 是远程仓库的别名,可以通过 git remote -v 查看
//master 是默认主分支
git push origin master

见到以上内容,便说明push成功。

3.3 git服务器远程仓库查看commit

  进入到服务器远程仓库的目录

见到以上内容,便说明push成功。

3.3 git服务器远程仓库查看commit

  进入到服务器远程仓库的目录

cd /home/git/LearnProject.git
git log

push 已成功!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章