参考链接1
参考链接2
- 本地电脑创建 ssh 密钥
ssh-keygen -t rsa //这时会要求你输入保存密钥的路径,这时只需要点击回车保存在默认路径
cat ~/.ssh/id_rsa.pub //查看公钥,之后要粘贴到服务器的 authorized_keys 文件中
- 创建 git 用户
adduser git
- 创建证书登录
su - git // 中间有空格, - 不能省略,不然后面可能会出现没有权限创建文件夹ssh
mkdir .ssh
chmod 700 .ssh
touch ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys
vim ~/.ssh/authorized_keys //把公钥复制到~/.ssh/authorized_keys
- 初始化git仓库
cd /home/git/
mkdir gitrepo
cd gitrepo
git init
chmod -R 777 gitrepo //初始化完后更改读写权限可能还要修改拥有者等权限
- 禁用shell登录
which git-shell
//得到路径 /usr/bin/git-shell
vim /etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash
改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
- 本地电脑克隆
git clone git@192.168.0.2:/home/git/gitrepo
- 让仓库接受代码提交
vim .git/config
[receive]
denyCurrentBranch = ignore
- 或者本地不克隆,添加远程
git remote add origin user@ip:/home/git/gitrepo
- 设置服务器端更新钩子 post-update
cd .git/hooks
vim post-receive
//将如下内容复制到文件中
#!/bin/sh
unset GIT_DIR
cd ..
git checkout -f
//保存后修改读写权限
chmod 777 post-receive