注:以下绿色字体为服务器端操作,蓝色字体为客户端操作。
1. 服务器端安装git。
// 安装git
yum install -y git
// 查看git版本
git --version
2. 创建git用户,用来管理git服务。
// 创建git用户
git adduser git
// 设置git用户密码
passwd git
3. 切换到git用户,创建远程仓库。
// 创建远程仓库目录
mkdir -p /home/git/remote/test.git
// 初始化远程仓库
git init --bare /home/git/remote/test.git
4. 在git用户家目录下创建.ssh目录。
cd ~
mkdir .ssh
5. 切换到root用户,打开RSA认证。
// 编辑sshd配置文件
vi /etc/ssh/sshd_config
取掉对下面两个配置的注释
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
// 重启sshd服务
systemctl restart sshd.service
6. 客户端安装git,打开Git Bash,生成公钥和私钥,导入公钥到服务器。
// 生成公钥和私钥
ssh-keygen -t rsa -C '配置git账号时用的邮箱'
// 导入公钥到服务器的/home/git/.ssh/authorized_keys文件
ssh git@<server-ip> 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
7. 使用root用户,修改/home/git/.ssh目录的权限为700,修改/home/git/.ssh/authorized_keys的权限为600。
chmod 700 /home/git/.ssh
chmod 600 /home/git/.ssh/authorized_keys
8. 进入代码目录,克隆远程仓库。
// 从远程仓库克隆本地仓库
git clone git@<server-ip>:远程仓库路径
9. 禁止git用户ssh登录。
编辑/etc/passwd文件,找到git:x:1001:1001::/home/git:/bin/bash,将最后的bash修改为git-shell,保存退出即可。