CentOS搭建Git服务器

CentOS搭建Git服务器

六月 08, 2018

新增服务器管理员:git

服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码

1
2
3
4
[[email protected] home]# id git
id: git:no such user # 没有此用户
[[email protected] home]# useradd git // 新增用户,用户名为git
[[email protected] home]# passwd git // 设置新用户git密码

初始化一个git仓库

1
2
3
4
5
[[email protected] home]# git init --bare home/git/project.git  # 初始化一个仓库

[[email protected] git]# chown -R git:git project.git #设置仓库的管理员为git

# 第一个git表示用户组,第二个git表示用户组里面的git用户
  • tips:到这里,服务器端的仓库就新建完了,就是这么简单

本地clone仓库

1
2
3
4
5
6
> git clone [email protected]:/home/git/project.git

> Cloning into 'project'...

> warning: You appear to have cloned an empty repository.
# 这样显示就表示克隆成功了

本地新建一个test.txt文件,push到服务器

1
2
3
4
5
>> git status
>> git add -a .
>> git commit -m 'test'
>> git push
[email protected]'s password:

push时会提醒你输入前面新建的git用户密码,输入后推送成功.输入密码时不可见

1
2
3
4
5
Counting objects: 3, done.
Writing objects: 100% (3/3), 204 bytes | 204.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To 149.28.18.111:/home/git/project.git
* [new branch] master -> master

git服务器SSH验证,避免输入密码

git每一次push都需要输入密码显然很麻烦,除了密码的验证方式,还有ssh(公钥)验证方式。

客户端新建一个ssh(公钥)

  1. 设置Git的user name和email:

    1
    2
    >> git config --global user.name "example"
    >> git config --global user.email "[email protected]"
  2. 生成密钥

    1
    >> ssh-keygen -t rsa -C “[email protected]
  3. 生成密钥成功后,公钥保存的目录

    1
    2
    3
    >> C:\Users\你电脑的用户名\.ssh

    # 在这个目录下有2个文件 `id_rsa`和`id_rsa.pub`.其中id_rsa是你自己的私钥,本地保存即可,id_rsa.pub是公钥,需要上传到服务器
  4. 服务器端,新建一个文件夹.ssh,一会儿用来存放公钥,目录为/home/git/.ssh

    1
    2
    3
    4
    5
    6
    7
    8
    # 新建
    [[email protected] git]# mkdir /home/git/.ssh
    [[email protected] git]# cd /home/git

    # 查看
    [[email protected] git]# ls -a
    # 出现 .ssh 则表示新建成功
    . .. project.git .ssh
  5. 即将成功了! 客户端,打开 id_rsa.pub 文件,复制内容到本地新建的 authorized_keys 文件内。 将 authorized_keys 文件上传到服务器,位置目录为 /home/git/.ssh/authorized_keys。也就是第4步用来存放公钥的文件夹

  6. 测试是否成功!
    本地的test.txt文件改动一下内容,再次提交,你会发现不用密码了.