1、使用yum安装git
yum install -y git
2、添加git用户组和用户
groupadd git
useradd git -g git
3、禁止git用户登录
vim /etc/passwd
找到git用户修改为:
git:x:504:1004::/home/git:/usr/bin/git-shell
4、创建git仓库
mkdir /home/git/
git init –bare test.git
5、修改git仓库所有权
chown -R git:git /home/git/test.git
6、创建认证密钥
ssh-keygen -t rsa -C “你的邮箱地址”
默认会创建在当前用户家目录的.ssh下,你可以根据提示让它创建在/home/git/.ssh下面,这个没有关系,只要你能找到就可以
创建完成后会有公钥id_rsa.pub(服务器上使用) 和 私钥 id_rsa(客户端使用)
7、将公钥添加到/home/git/.ssh/authorized_keys
cat id_rsa.pub >> /home/git/.ssh/authorized_keys
这里的权限很重要
.ssh文件夹的权限为 755或711
authorized_keys文件权限为600或644
否者可能会无法使用密钥登录
8、修改sshd配置
vim /etc/ssh/sshd_config
找到如下配置项,去除前面的注释,如果已经开启无需再配置
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
9、重启sshd服务
service sshd restart
10、将私钥id_rsa复制到客户端,可以通过scp或ftp、sftp等工具
然后在客户端执行
ssh-add id_rsa
10、接下来就可以不需要密码使用git用户操作服务器上的git仓库了
可以输入下面命令进行测试,如果没有输入密码提示那就成功了。但是因为上面设置了git的登录shell,登录时无法成功。
ssh git@主机地址