centos搭建git服务 密钥登录git

By | 2017年8月27日

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@主机地址