CentOS7服务器搭建本地的git仓库服务器端

  •   
  • 201
  • Linux
  • 0
  • super_dodo
  • 2020/04/27

在项目开发的时候需要创建自己公司的git仓库,你也可以使用gitlab这些开源的工具。当你服务器资源有限的时候,可以在开发测试机子上面自己搭建自己的git仓库服务器。方法大概如下所示。

# 验证是否安装成功
$ git --version
# 输出如下内容表示成功:
git version x.x.x.x


# 添加git账户
$ adduser git

# 修改git的密码
$ passwd git
# 然后两次输入git的密码确认后。


# 查看git是否安装成功
$ cd /home && ls -al
# 如果已经有了git,那么表示成,参考如下:
drwx------  10 git  git  4096 Apr  4 00:26 git
# 默认还给我们分配一个名字叫git的组。


$ ssh-keygen # 或者 mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys


配置服务端的ssh访问
切换到git账号,并创建ssh的默认目录和校验公钥的配置文件

# 1.切换到git账号
$ su git
$ whoami
# 2.进入 git账户的主目录
$ cd /home/git

# 3.创建.ssh的配置,如果此文件夹已经存在请忽略此步。
$ ssh-keygen # 或者 mkdir .ssh && chmod 700 .ssh


# 4. 进入刚创建的.ssh目录并创建authorized_keys文件,此文件存放客户端远程访问的 ssh的公钥。
$ cd /home/git/.ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

# 5. 设置权限,此步骤不能省略,而且权限值也不要改,不然会报错。
$ chmod 700 /home/git/.ssh/
$ chmod 600 /home/git/.ssh/authorized_keys

git config --global user.name 'hello'
git config --global user.email 'dodo@book.net'


ssh-keygen -t rsa -C "dodo@book.net"

#查看公告生成的pub
$ cat /tmp/id_rsa.pub

ssh-rsa AADShsdhshdhdsfdsfdsADAQABAAABAQC1BXbvDj+q8H+lj6k
tnL5WIX2Wr2/3eC3KKrtVHC08sdfdsfdsfsdgmCsIp56Bb6jGAINraash
wO6aPUxK5FLrpPyH2Um5ZJsl/0bMfiYFzsPretYUAShZDxnDhghdDAPTV
3GvdvdKIldnKxKNShmZcbvcxtPltVH9mvG0T dodo@book.net


生成keys的时候密码请直接enter键
如果你需要生成新的key请输入名称例如
/home/git/.ssh/id_rsa_root


#把你需要的所有的keys的pub内容都附加到authorized_keys
$ cat id_rsa.pub >> /home/git/.ssh/authorized_keys
$ cat id_rsa_git.pub >> /home/git/.ssh/authorized_keys
$ cat id_rsa_root.pub >> /home/git/.ssh/authorized_keys

此时你的git验证已完成。


新建空仓库
现在我们来为开发者新建一个空仓库。可以借助带 –bare 选项的 git init 命令来做到这一点,该命令在初始化仓库时不会创建工作目录:

$ cd /home/git
$ su git
$ whoami

$ git init --bare dodo_test.git
Initialized empty Git repository in /home/git/dodo_test.git/


以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:
$ chown -R git:git dodo_test.git


这样在客户端就可以clone了
git clone git@115.11.22.33:/home/git/dodo_test.git
Cloning into 'runoob'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

#端口有改动的情况下
git clone ssh://git@192.168.10.10:32569/opt/data/test.git  test_app

正常情况下我们会把22这个端口禁用了,这样客户端 SourceTree或者TortosieGit进行clone远程仓库的时候会出现端口连接不上的情况
重点注意:如果SSH 修改默认端口,配置方式跟默认并不一样

#正常未修改SSH 端口:
git clone git@192.168.10.10:/opt/data/test.git

#修改SSH端口配置方式
git clone ssh://git@192.168.10.10:32569/opt/data/test.git

以上配置完成可正常使用

此时,其他开发者可以克隆此仓库,并推回各自的改动,步骤很简单:
通过这种方法,你可以快速搭建一个具有读写权限、面向多个开发者的 Git 服务器。

常见遇到的问题.

多个终端记得吧id_rsa.pub 添加到/home/git/.ssh/authorized_keys之中,
不同的用户也需要添加上去,譬如服务器上面至少有git和root两个用户,两个都要添加进去。
多多查看.git目录权限
创建git仓库这些的时候建议都用git用户
你的git还需要各种安全设置.

参考文档:
https://www.runoob.com/git/git-server.html


book_dodo

$ cd /home/git
$ su git
$ whoami

git init --bare dodo_www_book_com.git
git clone git@111.22.33.44:/home/git/dodo_www_book_com.git  www_book_com

git init --bare dodo_www_book_com.git
git clone ssh://git@111.22.33.44:55/home/git/dodo_www_book_com.git  www_book_com