---
title: CentOS搭建Git服務器
date: 2018-06-08 13:08:00
tags: git
---
### 新增服務器管理員:git
>服務器端創(chuàng)建 git 用戶,用來管理 Git 服務,并為 git 用戶設置密碼
```bash
[root@vultr home]# id git
id: git:no such user? # 沒有此用戶
[root@vultr home]# useradd git? // 新增用戶,用戶名為git
[root@vultr home]# passwd git? // 設置新用戶git密碼
```
### 初始化一個git倉庫
```bash
[root@vultr home]# git init --bare home/git/project.git? # 初始化一個倉庫
[root@vultr git]# chown -R git:git project.git? #設置倉庫的管理員為git
# 第一個git表示用戶組,第二個git表示用戶組里面的git用戶
```
* tips:到這里,服務器端的倉庫就新建完了,就是這么簡單
---
### 本地clone倉庫
```bash
> git clone git@149.28.18.111:/home/git/project.git
> Cloning into 'project'...
> warning: You appear to have cloned an empty repository.
# 這樣顯示就表示克隆成功了
```
### 本地新建一個test.txt文件,push到服務器
```bash
>> git status
>> git add -a .
>> git commit -m 'test'
>> git push
git@149.28.18.111's password:
```
> push時會提醒你輸入前面新建的git用戶密碼,輸入后推送成功.輸入密碼時不可見
```bash
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:
```bash
>> git config --global user.name "example"
>> git config --global user.email "example@qq.com"
```
2. 生成密鑰
```bash
>> ssh-keygen -t rsa -C “example@qq.com”
```
3. 生成密鑰成功后,公鑰保存的目錄
```bash
>> C:\Users\你電腦的用戶名\.ssh
# 在這個目錄下有2個文件 `id_rsa`和`id_rsa.pub`.其中id_rsa是你自己的私鑰,本地保存即可,id_rsa.pub是公鑰,需要上傳到服務器
```
4. 服務器端,新建一個文件夾.ssh,一會兒用來存放公鑰,目錄為/home/git/.ssh
```bash
# 新建
[root@vultr git]# mkdir /home/git/.ssh
[root@vultr git]# cd /home/git
# 查看
[root@vultr git]# ls -a
# 出現 .ssh 則表示新建成功
.? ..? project.git? .ssh
```
5. 即將成功了! 客戶端,打開 `id_rsa.pub` 文件,復制內容到本地新建的 `authorized_keys` 文件內。 將 `authorized_keys` 文件上傳到服務器,位置目錄為 `/home/git/.ssh/authorized_keys`。也就是第4步用來存放公鑰的文件夾
6. 測試是否成功!
本地的test.txt文件改動一下內容,再次提交,你會發(fā)現不用密碼了.