标签:
这篇文章主要讲述简易的GIT服务器环境搭建,环境是CentOS。authorized_keys
这边比较简单的方法就是通过yum的方式安装
sudo yum install git
useradd git -d /home/git passwd git
/home/git为服务端版本存储的目录地址。这个时候就可以通过git这个账号,登录服务器了。
首先,我们需要在本地生成公钥。生成的命令如下:
ssh-keygen -t rsa
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4L ojG6rs6hPB09j9R/T17/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4k Yjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003C4oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9Ez Sdfd8AcCIicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myiv O7TCUSBdLQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPq dAv8JggJICUvax2T9va5 gsg-keypair
mkdir .ssh chmod 700 .ssh cd .ssh touch authorized_keys chmod 600 authorized_keys
其中 .ssh文件夹必须是700的权限,authorized_keys文件必须是600的权限
然后将我们的公钥传到这个服务器上,将公钥内容拷贝进入authorized_keys文件中。
cat /home/admin/id_rsa.pub > /home/git/.ssh/authorized_keys
cd /home/git mkdir project.git cd project.git/ git --bare init这个时候服务端仓库就创建成功了。
这个时候,客户端就可以通过git命令clone代码了。
git clone git@192.168.136.100:/home/git/project.git
$ git clone git@192.168.136.100:/home/git/project.git Cloning into 'project'... git@192.168.136.100's password:
于是,我们检查刚才配置的.ssh文件夹,发现权限还是root root的,需要修改成 git的权限。
drwxr-xr-x. 7 root root 4096 1月 8 17:20 project.git drwx------. 2 root root 28 1月 8 17:16 .ssh
执行命令:
chown -R git:git project.git chown -R git:git .ssh这个时候,我们发现可以直接不需要密码登陆就能下载git了。
最开始,我们创建了git的账号,但是这个账号权限太大了,拥有shell的登录权限。如果git账号泄露岂不是可以给服务器造成破坏。于是,可以修改git账号权限,限制git账号只能用于git的操作。
vim /etc/passwd
找到git的权限:
git:x:1003:1003::/home/git:/bin/bash
git:x:1003:1003::/home/git:/usr/bin/git-shell
如果有其它的用户也需要GIT权限怎么办?可以将其它用户端公钥也放到 authorized_keys中去。
但是这种办法只适合于小团队范围的GIT项目版本管理。
标签:
原文地址:http://blog.csdn.net/initphp/article/details/42527089