Git服务器概述 {#Git服务器概述}
在实际的开发中,都是一个团队协同开发,共享代码资源。那么就需要服务器来存放团队的代码,需要用的时候从服务器下载。首先找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个"服务器"仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。可以自己搭建这台服务器,也可以使用GitHub、码云网站作为Git服务器。
搭建Git服务器 {#搭建Git服务器}
Centos7操作系统的云服务器搭建Git环境。
-
服务器端安装git
(一)检查Centos有没有自带或者安装git,查询版本|-----------|------------------------| |
1
|git ---version
|(二)如果存在,则查询git详情
|-----------|---------------------| |
1
|rpm -qa git
|(三)删除存在的git
|-----------|---------------------------| |
1
|yum -y remove git
|(四)如果没有查询到使用yum安装
|-----------|----------------------------| |
1
|yum -y install git
|若是其他Linux系统如Ubuntu等,请自行查询相应的安装命令。
-
服务器端创建git用户
(一)创建用户组git|-----------|----------------------| |
1
|groupadd git
|(二)新增git用户(所属git组)
|-----------|-------------------------------| |
1
|useradd -m -g git git
|(三)设置git密码
|-----------|--------------------| |
1
|passwd git
|(四)修改home目录下git文件的权限
|-----------|-----------------------------| |
1
|chmod 755 /home/git
|(五)切换至git用户
|-----------|----------------| |
1
|su git
|(六)进入git用户所在的home目录
|-----------|------------| |
1
|cd
|(七)创建.ssh文件,并赋予权限
|-----------|--------------------------------------| |
1
|mkdir .ssh && chmod 700 .ssh
|(八)在.ssh文件中创建公钥存储文件authorized_keys,同时赋予权限
|-----------|----------------------------------------------------------------------| |
1
|touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
|.ssh
目录的权限必须是700
,而authorized_keys
的权限必须是600
,请确保权限是否正确。 -
服务器端创建git仓库
(一)初始化空的git版本库|-----------|-----------------------------------------------------------------------------| |
1
|[git@localhost ~]$ git init --bare /home/git/repository/gittest.git
|若创建成功,则会出现下述信息:
Initialized empty Git repository in /home/git/repository/gittest.git
修改文件归属者|-----------|---------------------------------------------| |
1
|chown git:git /home/git/repository/
| -
服务器端打开RSA认证
(一)切换root用户|-----------|------------| |
1
|su
|(二)进入 /etc/ssh 目录,编辑 sshd_config,把下面内容的前面的#号去掉:
|-------------------|------------------------------------------------------------------------------------------------| |
1 2 3 4 5
|RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
|【注意】
由AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys
(三)进入 /etc/ssh 目录,编辑 sshd_config,注释掉密码认证:|-----------|-------------------------------------| |
1
|#PasswordAuthentication yes
|(四)重启 sshd 服务
|-----------|----------------------------------------| |
1
|systemctl restart sshd.service
| -
客户端创建SSH公钥和私钥
(一)生成ssh密钥。|-----------|-------------------------------------| |
1
|ssh-keygen -t rsa -C "邮箱地址"
| -
服务器端authorized_keys添加客户端公钥
|-----------|-----------------------------------------------------------------------| |
1
|[root@localhost git]# cat id_rsa1.pub >> .ssh/authorized_keys
|【注意】多个公钥都采用这种形式添加
-
禁止git用户SSH登录服务
(一)编辑 /etc/passwd|-----------|---------------------------------------------| |
1
|[root@server01 git]# vi /etc/passwd
|(二)找到:git:x:1000:1000::/home/git:/bin/bash
(三)修改:git:x:1000:1000::/home/git:/bin/git-shell -
客户端拉取服务端项目
(一)进入Git仓库,获取项目绝对路径|-----------|------------------------------------------| |
1
|[root@server01 gittest.git]# pwd
|(二)Git客户端克隆项目
|-----------|-----------------------------------------------------------| |
1
|git clone git@IP:/home/git/repository/gittest.git
|