一步一步搭建git私有仓库服务器记录
2016-07-29 09:59
381 查看
参考链接:廖老师博客-搭建Git服务器 WXie的博客-git搭建
1、首先安装好linux系统,本文以Ubuntu为例进行解析
2、安装好系统打开终端
1>
sudo passwd重置root账户密码
sudo + passwd + 账户名重置该账户密码
2>
sudo apt-get update 更新库到最新
3、sudo apt-get install git-core openssh-server openssh-client
安装git服务器所需的软件
4、安装gitosis(已停止更新建议使用gitoslite代替,可实现像svn一样的变态的权限控制)
1> 由于gitosis以来Python的一些工具,需先确认Python已正常安装
2> 安装setuptools,sudo apt-get install python-setuptools
3> 初始化git服务器用户信息
git config --global user.name "暂时随便填,作用不大"
git config --global user.email "随便填,作用暂时不大"
4> 安装gitosis,用来管理用户密钥对(client传过来的公钥,方便权限管理)
git clone https://github.com/res0nat0r/gitosis.git (先download源代码,github上面有两个,貌似都可以用)
cd gitosis (进入目录)
sudo python setup.py install (执行安装指令)
5、创建git管理用户
sudo useradd -m git (创建git用户)
sudo passwd git (更新git用户密码)
6、创建仓库存储
--1、sudo mkdit /home/gitrepositories (创建仓库存储位置)--(可选步骤)
--2、sudo chown git:git /home/gitrepositories (更改仓库权限只有git用户可访问(root也可)) -- (可选步骤)
--3、sudo chmod 700 /home/gitrepositories (更改仓库读写权限)
--4、sudo ln -s /home/gitrepositories/ /home/git/repositories (可选步骤,若1-2-3执行了,则4必须执行)
备注:gitosis默认状态下会将仓库放在用户的repositories目录下,例如git用户的仓库地址默认在
/home/git/repositories/目录下
7、创建管理员密钥对
1、若直接在服务器创建,则直接执行
ssh-keygen -t rsa
2、mac同Linux创建方式
3、window在git-bash下创建方式同Linux,在openssh下创建则参照window创建rsa非对称密钥对<不过这种方式创建的密钥对,暂时好像存在问题,还没有弄清问题出在哪儿,应该是创建密钥对,没有正常添加到git密钥串中,导致git使用访问时出问题>)
4、把创建的公钥放到服务器任意文件夹目录,一般/tmp或者登陆用户目录下,以便不同用户均能正常访问(保证用户均能正常访问)。
5、使用公钥初始化管理员仓储(gitosis-admin.git)
1>sudo -H -u git gitosis-init < /tmp/id_rsa.pu
(一般创建方式,普通用户<非root或git用户>,如果在git用户下该中方式需要在/etc/sudoer文件(更改文件权限为可编辑(sudo chmod 700 ...))中添加git的root权限(复制root ALL..行,更改root为git用户,更改完sudoer权限,需要把该文件的权限重新设置为440))
2>gitosis-init < /tmp/id_rsa.pub
(该种方式用于当前用户就是git用户,且git具有root权限,具有gitosis-init和git仓储存储的访问权限下,一般不用)
6、初始化后的git管理权限配置仓储应该在/home/git/repositories/下
7、配置post-update权限 (暂时没发现具体作用)
sudo chmod 755 /home/gitrepository/gitosis-admin.git/hooks/post-update
8、到生成管理密钥对的机器上创建gitadmin文件夹,名字随意。
sudo mkdir gitadmin
cd gitadmin
9、clone管理仓储
git clone git@ServerIP:/gitosis-admin.git <测试在win下和mac下> (此处正常情况下,直接就是服务器ip:/仓储,或者是ip:/home/git/repositories/仓储<备注:怀疑是Linux的权限造成的,上述两种方式,只要能正常clone不需要验证密码就是可以的,需要密码一般是由于相对路径存在问题或者找不到密钥造成的>,两种方式都可能产生ERROR:gitosis.serve.main:Repository
read access denied fatal: Could not read from remote repository.也就是说产生该种错误并不都是由放在keydir/目录下公钥名称和gitosis.conf中配置不一造成的<当然名称不一也会产生上述类型的错误>)
在同台Ubuntu服务器上进行clone仓储时,路径一般为git@ServerIP:/home/git/repositories/仓储。否则,容易产生fatal: '/repositories/5060.git' does not appear to be a git repository
fatal: Could not read from remote repository.错误。<具体原因还未弄懂,以后更新吧>
10、添加其他成员(client)的公钥
1> 把client的公钥放到9中clone的gitosis-admin.git/keydir/目录下,名称随意(但是要和配置在gitosis.conf中的members名称一致),后缀为.pub。
2> 然后配置该client的仓储访问权限。如: <注:多个成员写作同个仓储,则在members后面一次添加公钥名称,以空格隔开(不能多个group,同个仓储名)>,权限配置一般为一个仓储一个group。
[group git-test]
writable = 仓储(不带.git) <此处配的仓储一般为已经存在git服务器的仓储>
/*readonly = 仓储*/
memberes = 步骤1>中配置的pub名称,不带.pub。 成员1 成员2
3> 提交配置修改
git add gitosis.conf
git add keydir/成员.pub
git commit -m "message 日志"
git push origin master
4> 一般提交修改后,都要去服务器重启sshd服务
sudo /etc/init.d/ssh restart <或sudo /etc/init.d/sshd restart>
11、一般空仓库的创建都要在服务器产生或者由管理员在本地生成再push到服务器
git init --bare sample.git (一般与gitosis-admin.git同目录创建)
12、其他错误记录
1> ERROR:gitosis.serve.main:Repository read access denied fatal: Could not read from remote repository 或一直需要输入密码
git@ip:/home/git/repositories/gitosis-admin.git
(使用默认/homet/git/repositories/gitosis-admin.git时容易产生没有权限或者找不到证书git操作时需要一直输入密码问题吧),应使用正确:git@ip:/gitosis-admin.git。
2> ERROR:gitosis.serve.main:Repository
read access denied fatal: Could not read from remote repository
可能是gitosis.conf中配的members名称和keydir/目录中添加的公钥名称不一致。如:members = 成员1 , 成员1.pub
3>
13、git的其他操作有待之后学习完善
1、首先安装好linux系统,本文以Ubuntu为例进行解析
2、安装好系统打开终端
1>
sudo passwd重置root账户密码
sudo + passwd + 账户名重置该账户密码
2>
sudo apt-get update 更新库到最新
3、sudo apt-get install git-core openssh-server openssh-client
安装git服务器所需的软件
4、安装gitosis(已停止更新建议使用gitoslite代替,可实现像svn一样的变态的权限控制)
1> 由于gitosis以来Python的一些工具,需先确认Python已正常安装
2> 安装setuptools,sudo apt-get install python-setuptools
3> 初始化git服务器用户信息
git config --global user.name "暂时随便填,作用不大"
git config --global user.email "随便填,作用暂时不大"
4> 安装gitosis,用来管理用户密钥对(client传过来的公钥,方便权限管理)
git clone https://github.com/res0nat0r/gitosis.git (先download源代码,github上面有两个,貌似都可以用)
cd gitosis (进入目录)
sudo python setup.py install (执行安装指令)
5、创建git管理用户
sudo useradd -m git (创建git用户)
sudo passwd git (更新git用户密码)
6、创建仓库存储
--1、sudo mkdit /home/gitrepositories (创建仓库存储位置)--(可选步骤)
--2、sudo chown git:git /home/gitrepositories (更改仓库权限只有git用户可访问(root也可)) -- (可选步骤)
--3、sudo chmod 700 /home/gitrepositories (更改仓库读写权限)
--4、sudo ln -s /home/gitrepositories/ /home/git/repositories (可选步骤,若1-2-3执行了,则4必须执行)
备注:gitosis默认状态下会将仓库放在用户的repositories目录下,例如git用户的仓库地址默认在
/home/git/repositories/目录下
7、创建管理员密钥对
1、若直接在服务器创建,则直接执行
ssh-keygen -t rsa
2、mac同Linux创建方式
3、window在git-bash下创建方式同Linux,在openssh下创建则参照window创建rsa非对称密钥对<不过这种方式创建的密钥对,暂时好像存在问题,还没有弄清问题出在哪儿,应该是创建密钥对,没有正常添加到git密钥串中,导致git使用访问时出问题>)
4、把创建的公钥放到服务器任意文件夹目录,一般/tmp或者登陆用户目录下,以便不同用户均能正常访问(保证用户均能正常访问)。
5、使用公钥初始化管理员仓储(gitosis-admin.git)
1>sudo -H -u git gitosis-init < /tmp/id_rsa.pu
(一般创建方式,普通用户<非root或git用户>,如果在git用户下该中方式需要在/etc/sudoer文件(更改文件权限为可编辑(sudo chmod 700 ...))中添加git的root权限(复制root ALL..行,更改root为git用户,更改完sudoer权限,需要把该文件的权限重新设置为440))
2>gitosis-init < /tmp/id_rsa.pub
(该种方式用于当前用户就是git用户,且git具有root权限,具有gitosis-init和git仓储存储的访问权限下,一般不用)
6、初始化后的git管理权限配置仓储应该在/home/git/repositories/下
7、配置post-update权限 (暂时没发现具体作用)
sudo chmod 755 /home/gitrepository/gitosis-admin.git/hooks/post-update
8、到生成管理密钥对的机器上创建gitadmin文件夹,名字随意。
sudo mkdir gitadmin
cd gitadmin
9、clone管理仓储
git clone git@ServerIP:/gitosis-admin.git <测试在win下和mac下> (此处正常情况下,直接就是服务器ip:/仓储,或者是ip:/home/git/repositories/仓储<备注:怀疑是Linux的权限造成的,上述两种方式,只要能正常clone不需要验证密码就是可以的,需要密码一般是由于相对路径存在问题或者找不到密钥造成的>,两种方式都可能产生ERROR:gitosis.serve.main:Repository
read access denied fatal: Could not read from remote repository.也就是说产生该种错误并不都是由放在keydir/目录下公钥名称和gitosis.conf中配置不一造成的<当然名称不一也会产生上述类型的错误>)
在同台Ubuntu服务器上进行clone仓储时,路径一般为git@ServerIP:/home/git/repositories/仓储。否则,容易产生fatal: '/repositories/5060.git' does not appear to be a git repository
fatal: Could not read from remote repository.错误。<具体原因还未弄懂,以后更新吧>
10、添加其他成员(client)的公钥
1> 把client的公钥放到9中clone的gitosis-admin.git/keydir/目录下,名称随意(但是要和配置在gitosis.conf中的members名称一致),后缀为.pub。
2> 然后配置该client的仓储访问权限。如: <注:多个成员写作同个仓储,则在members后面一次添加公钥名称,以空格隔开(不能多个group,同个仓储名)>,权限配置一般为一个仓储一个group。
[group git-test]
writable = 仓储(不带.git) <此处配的仓储一般为已经存在git服务器的仓储>
/*readonly = 仓储*/
memberes = 步骤1>中配置的pub名称,不带.pub。 成员1 成员2
3> 提交配置修改
git add gitosis.conf
git add keydir/成员.pub
git commit -m "message 日志"
git push origin master
4> 一般提交修改后,都要去服务器重启sshd服务
sudo /etc/init.d/ssh restart <或sudo /etc/init.d/sshd restart>
11、一般空仓库的创建都要在服务器产生或者由管理员在本地生成再push到服务器
git init --bare sample.git (一般与gitosis-admin.git同目录创建)
12、其他错误记录
1> ERROR:gitosis.serve.main:Repository read access denied fatal: Could not read from remote repository 或一直需要输入密码
git@ip:/home/git/repositories/gitosis-admin.git
(使用默认/homet/git/repositories/gitosis-admin.git时容易产生没有权限或者找不到证书git操作时需要一直输入密码问题吧),应使用正确:git@ip:/gitosis-admin.git。
2> ERROR:gitosis.serve.main:Repository
read access denied fatal: Could not read from remote repository
可能是gitosis.conf中配的members名称和keydir/目录中添加的公钥名称不一致。如:members = 成员1 , 成员1.pub
3>
13、git的其他操作有待之后学习完善
相关文章推荐
- git 服务器搭建,在自己服务器上搭建私有仓库
- git 服务器搭建,在自己服务器上搭建私有仓库
- git 服务器搭建,在自己服务器上搭建私有仓库
- git 服务器搭建,在自己服务器上搭建私有仓库
- docker私有仓库搭建完整记录(git方式)
- 在Dropbox上搭建私有的Git仓库的教程
- 2015-08-30-Mac-拉取远程私有服务器的git仓库
- 自己在本地搭建git版本仓库服务器
- git仓库的建立与git服务器的搭建
- Git 搭建私有仓库
- 在Dropbox上搭建私有的Git仓库的教程
- GIT 服务器搭建记录
- 搭建Git远程仓库(也就是Git服务器,不用再连Github了)
- 在Dropbox上搭建私有的Git仓库的教程
- 如何搭建私有的Git中心服务器
- 在Dropbox上搭建私有的Git仓库的教程
- CentOS搭建GIT服务器【一】-仓库搭建以及基于gitosis的SSH方式访问
- git搭建服务器,远程仓库
- 记录自己在centos虚拟机搭建简易git服务器的过程,分享给大家