在centos7上部署属于自己的git服务器


本文将详细介绍如何在centos7上部署属于自己的git服务器

服务端配置

1.安装 Git

1
yum –y install git

2.创建 Git 的专属管理账户和密码

1.创建 Git 账户:

1
adduser git

2.设置 Git 账户的密码:

1
passwd git

3.创建git仓库

1
2
3
4
su git
cd /home/git
mkdir test.git && cd test.git
git init --bare

4.配置账户免密码登录

1.创建 ssh 的默认目录

1
2
cd /home/git
mkdir .ssh

2.创建校验公钥的配置文件

1
2
3
4
cd /home/git/.ssh
touch authorized_keys
chmod 700 /home/git/.ssh/
chmod 600 /home/git/.ssh/authorized_keys

5.禁止客户端 shell 登录

注意:如果 git 客户端可以直接通过 shell 使用 git 账户来远程登录服务器,这样是不安全的

1
2
3
4
su git
mkdir /home/git/git-shell-commands
su root
vim /etc/passwd

找到

1
git:x:1000:1000::/home/git:/bin/bash

其中1000可能为其他数字,然后将原来的那一行注释,然后复制一行出来改成

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

修改完后退出保存: esc 进入命令模式, 输入::wq! 保存退出。

PS:禁用后无法通过shell去登录git账号创建仓库,需要用root账号进行以下步骤:

1
2
3
mkdir test.git  && cd test.git
git init --bare
chown -R git /home/git/test.git #把文件夹所有者赋予git用户

客户端

同一服务器上使用(以下均用root用户创建)

1.设置用户名和邮箱

1
2
git config --global user.name "client_username"
git config --global user.email "[email protected]"

2.创建ssh keys

1
2
cd ~/.ssh
ssh-keygen -t rsa -C "[email protected]"

碰到需要输入的地方直接按回车键,最后等待创建成功
3.将生成的文件复制到 git 目录下

1
cp /root/.ssh/id_rsa.pub /home/git/.ssh/test.pub

4.将 test.pub 文件中的内容追加到 authorized_keys

1
2
cd /home/git/.ssh
cat test.pub >> authorized_keys

5.使用

1
2
3
cd ~
mkdir test_project && cd test_project
git clone [email protected]:/home/git/test.git

到此即可自行添加文件并push测试

window下使用

1.安装 Windows 版 Git 工具(请下载后请自行安装,这里不作赘述,下载地址
2.客户端配置

1
2
git config --global user.name "client_username"
git config --global user.email "[email protected]"

3.在路径C:\Users\您的用户名下创建.ssh文件夹,如果原来已存在则不需要
4.创建私钥(同服务端)

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

5.手动将公钥添加到服务器中,可用以下命令

1
scp ./id_rsa.pub root@你的ip地址:/home/git/.ssh/pc.pub

6.登录服务器,将刚上传的 pc.pub 文件中的内容追加到 authorized_keys

1
2
cd /home/git/.ssh
cat test.pub >> authorized_keys

7.使用
7.1 安装TortoiseGit 下载地址
7.2 安装完毕后clone,地址填git@ip地址:/home/git/test.git即可,如果提示需要密码则进行以下操作

8.配置TortoiseGit
8.1 打开C:\Users\您的用户名\.ssh
8.2 复制私钥文件id_rsa,将复制的文件的文件名改为id_rsa.ppk
8.3 打开TortoiseGit的安装目录,找到puttygen.exe,双击运行。
8.4 点击Load,加载刚才复制的id_rsa.ppk文件,点击确定。
8.5 Load完毕后点击Save private key,弹窗选择是,将私钥保存为TortoiseGit.ppk
8.6 在项目目录下,右键选择TortoiseGit(T)-->设置,打开设置界面。
8.7 选中git下的Remote(远端)->选泽origin->Putty Key(Putty 密钥)选中刚刚保存的TortoiseGit.ppk,应用并确定即可
这时候pull或者push都不会再要求输入密码了

参考资料

搭建
小乌龟设置