安装git
sudo apt update
sudo apt install git
创建git用户
sudo adduser git
创建证书登录
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个
或者在需要登录的客户端 执行以下命令
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
ssh-copy-id git@your_server_ip
这里的作用也是将公钥匙复制到/home/git/.ssh/authorized_keys文件
创建仓库
- 下面例子为创建blog仓库
cd /home/git;sudo git init --bare blog.git;sudo chown -R git:git blog.git
禁用git用户ssh登录 可选
-
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑
/etc/passwd
文件完成。找到类似下面的一行-
git:x:1001:1001:,,,:/home/git:/bin/bash
-
-
将其改为
-
git:x:1001:1001:,,,:/home/git:/bin/bash
-
修改ssh配置 只允许使用公钥登录 建议
-
sudo vi /etc/ssh/sshd_config
确保以下配置项处于启用状态 2个配置按照顺序逐个修改,确保能用公钥登录后再禁用密码登录-
PubkeyAuthentication yes PasswordAuthentication no
-
PubkeyAuthentication为是否允许pubkey登录 PasswordAuthentication为是否允许使用密码登录
-
-
sudo systemctl restart ssh
重启ssh服务
客户端测试git拉取提交是否成功
git clone git@xx.com:/home/git/blog.git
定期备份git项目源码
Backup.sh
- 将xxx.git项目打包 用网盘工具备份 每天定时备份一次
rm -rf /tmp/gitbackup/blog.git.tgz
rm -rf /tmp/gitbackup/golang.git.tgz
rm -rf /tmp/gitbackup/becool.git.tgz
sudo tar -czvf /tmp/gitbackup/blog.git.tgz /home/git/blog.git >/tmp/blog.git.tar.log 2>&1
sudo tar -czvf /tmp/gitbackup/becool.git.tgz /home/git/becool.git >/tmp/becool.git.tar.log 2>&1
sudo tar -czvf /tmp/gitbackup/golang.git.tgz /home/git/golang.git >/tmp/golang.git.tar.log 2>&1
sudo chown -R ketonghe:ketonghe /tmp/gitbackup/*
sudo /home/ketonghe/shell/189cloud backup /tmp/gitbackup/ /selfgit/
Crontab 配置
0 1 * * * /home/ketonghe/shell/backupSelfGit.sh > /home/ketonghe/shell/backupSelfGit.log 2>&1