shunhua's blog

CentOS 7 Git服务器搭建及配置公钥

2018-04-08

一、Git服务器搭建

a. 安装Git

yum install -y git

b. 添加新用户、为用户设置密码

adduser git
passwd git

c. 创建空的Git仓库

cd /home/git
git init --bare test.git
chown -R git:git ../git

d. 在服务器端打开RSA认证

cd /home/git
mkdir .ssh
cd .ssh
touch authorized_keys

e. 命令行创建SSH key

ssh-keygen -t rsa -C “x@qq.com

Linux 家目录/.ssh/:id_rsa、id_rsa.pub。
windows C:\Users\Administrator.ssh\

f.把步骤5生成的公钥导入服务器

cat id_rsa.pub >> /home/git/.ssh/authorized_keys

简单操作:windows 打开 Git-Gui->Help->Show SSH Key 直接复制key到Linux authorized_keys文件中

二、配置钩子

a. 设置clone帐号的SSH key
我用的lnmp的环境 用户为 www

sudo -u www ssh-keygen -t rsa -C “b@qq.com
cat id_rsa.pub >> /home/git/.ssh/authorized_keys

b. 设置Git用户使用www用户clone
设置了 /etc/sudoers 添加:

git ALL=(ALL) NOPASSWD: ALL

进入网站目录拉取
su git
sudo -u www git clone ssh://git@127.0.0.1/home/git/test.git

c. 配置钩子[主要]

cd /home/git/test.git/hooks/
vim post-receive

1
2
3
4
5
#!/bin/bash
export LANG=zh_CN.UTF-8
cd /home/wwwroot/www/test/
unset GIT_DIR
sudo -u www git pull origin master

chown git:git post-receive
chmod +x post-receive

在本地clone拉取远程git仓库

git clone ssh://git@127.0.0.1/home/git/test.git

git 回滚到任意版本操作

git reset –hard xxx[版本号]
git push -f origin master

git known_hosts

sudo -u www ssh-keygen -R 127.0.0.1
sudo -u www git pull origin master

使用支付宝打赏
使用微信打赏

欢迎点击上方按钮对我打赏,谢谢你给我吃糖果