git是一个分布式的管理
1.安装git
yum install git
2、创建一个git用户,用来运行git服务
adduser git
passwd git
3、初始化git裸仓库
git init --bare /home/test/test.git
执行以上命令,会创建一个裸仓库,裸仓库没有工作区,服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
chown git:git test.git //设置文件的权限 用户:组
因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区.
vim /etc/passwd //将执行脚本改成git
git:x:1000:1000::/home/git:/usr/bin/git-shell
这样我们就可以在客户端clone该仓库了
git clone git@IP:/home/test/test.git //用户名@IP:仓库目录
之后会输入密码
3、创建密钥,不用输入密码
ssh-keygen -t rsa -C "邮箱"
此时 C:\Users\用户名\.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub
id_rsa 是私钥
id_rsa.pub 是公钥
4、服务器端 Git 打开 RSA 认证(转)
进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存并重启 sshd 服务:
[root@localhost ssh]# /etc/rc.d/init.d/sshd restart
由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys
在 /home/git/ 下创建目录 .ssh
[root@localhost git]# pwd
/home/git
[root@localhost git]# mkdir .ssh
[root@localhost git]# ls -a
. .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla .ssh
然后把 .ssh 文件夹的 owner 修改为 git
chown -R git:git .ssh
4、客户端公钥导入到服务端/home/git/.ssh/authorized_keys
修改 .ssh 目录的权限为 700
修改 .ssh/authorized_keys 文件的权限为 600
再clone即可
如果还是需要输入密码将/etc/ssh/sshd_config 内容StrictModes 设为no
如果还是不可以看下文件权限