centos 安装git server

1.yum install lrzsz wget git

2.安装gitosis:gitosis为Git用户权限管理系统,通过管理服务端的/home/git/.ssh/authorized_key文件来执行对用户权限的管理,是一个python模块包

#yum install python python-setuptools

#git clone git://github.com/res0nat0r/gitosis.git

#cd gitosis/

#python setup.py install

显示Finished processing dependencies for gitosis==0.2即表示成功

3.

访问Gitolite需要通过SSH 密钥来验证。在用作GIT客户端的电脑上如果还没有密钥(一个公钥,一个私钥),那么可以使用ssh-keygen命令生成,然后将公钥拷贝到GIT服务器上。

$ ssh-keygen -t rsa “[email protected]”

这里我们没有指定生成的密钥文件名称(可以通过-f filename指定),因此生成的文件为id_rsa和id_rsa.pub,前者是私钥,后者是公钥。另外,在Linux下执行ssh-keygen可以同时指定该密钥主人的email,这将出现在SSH公钥内容中。

在Gitolite建立的GIT服务器上,是通过修改gitolite-admin.git这个代码库中的源代码来创建新的代码库、为GIT客户添加登录用的公钥的。所以要管理Gitolite,必须有一个git virtual user去git clone出gitolite-admin.git的代码,这也就需要在服务器本机建立一对SSH密钥。

添加git用户

adduser --system --shell /bin/sh --comment ‘git version control‘ --create-home  --home-dir /home/git git

cd /home/git

rz  选择你生成的ssh-key

4.su git

gitosis-init < ./id_rsa.pub
chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

5.使用puttykeygenerator  转换 pub为ppk

在Linux下产生的私钥文件putty是不认识的,putty只认识自己的ppk格式,要在这两种格式之间转换,需要PuTTYgen这个程序。

在安装tortoisegit的时候会提示有选择项:

如果选择第一个,在安装后配置git的时候就需要注意一些东西,如果选择第二项则git的连接都是通过ssh完成,后续配置简单一些。

选择plink模式在git clone的时候需要加载ppk

putty key的生成方式:

启动putty key generator

点击load按钮将刚才最先生成的ssh中的密钥id_rsa文件导入,然后弹出对话框提示导入成功,接着点击save private key来保存ppk文件,最后在git clone的对话框中加载ppk文件即可,连接的时候会提示输入git用户的密码,输入一下即可git clone gitosis的配置文件。

如果选择ssh模式的tortoisegit,那么就无需配置ppk,直接git clone。

这里在对话框中的git url填写的时候需要注意,是直接写gitosis-admin.git,而不是加有/home/git的绝对路径了。

6.如果是直接在linux服务器上git clone,那么要注意路径问题:

git clone [email protected]:/home/git/repositories/gitosis-admin.git

否则写会提示:

1 fatal: ‘gitosis-admin.git‘ does not appear to be a git repository
2 fatal: The remote end hung up unexpectedly

如果是windows下,不要加用户名和绝对路径否则会报错

ERROR:gitosis.serve.main:Repository read access denied

git clone [email protected]:gitosis-admin.git

7.gitosis.conf

[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = [email protected]        #显示用户[email protected]是初始化gitosis公钥的拥有者,是唯一能管理gitosis-admin项目的人

[group jay_fans]            #组名称
members = [email protected]        #密钥用户名  多个用户名使用 空格隔开  [email protected] [email protected]
writable = git-test                #项目名称

三、常见问题

首先确定 /home/git/repositories/gitosis-admin.git/hooks/post-update 为可执行即属性为 0755

1. git操作需要输入密码

原因
公密未找到 
解决
上传id_pub.rsa到keydir并改为‘gitosis帐号.pub‘形式,如miao.pub。扩展名.pub不可省略 

2. ERROR:gitosis.serve.main:Repository read access denied

原因
gitosis.conf中的members与keydir中的用户名不一致,如gitosis中的members = [email protected],但keydir中的公密名却叫foo.pub
解决
使keydir的名称与gitosis中members所指的名称一致。 
改为members = foo 或 公密名称改为[email protected]

(3)出现’gitosis-admin’ does not appear to be a git repository,短路径无效时替换为全路径

在服务器上使用短路径会取现下面这个问题,原因是没有找到对应匹配的密钥所致,如果正确使用了ssh密钥则不会出现这个问题,这里就不去折腾了

[email protected]:/home/git/repositories# git clone [email protected]:gitosis-admin.git
Cloning into gitosis-admin...
[email protected]‘s password:
fatal: ‘gitosis-admin‘ does not appear to be a git repository
fatal: The remote end hung up unexpectedly

使用以下命令解决,只不过每次push和pull的时候都需要输入一遍git用户的密码,略为繁琐

git clone [email protected]:/home/git/repositories/gitosis-admin.git

(4)出现Unable to create temporary file: Permission denied
在Windows上使用TortoiseGit执行Push时出现以下错误

git.exe push --force --progress  "origin" master:master

Counting objects: 189, done.
Compressing objects: 100% (187/187)
Writing objects:   7% (14/189)
fatal: Unable to create temporary file: Permission denied
fatal: sha1 file ‘<stdout>‘ write error: Invalid argument
error: failed to push some refs to ‘[email protected]:channelv.git‘

git did not exit cleanly (exit code 1)

原来是服务器上是用root账户建立的库目录,导致git账户无权写入,方法就是修改文件夹的所属用户和所属用户组

[email protected]:/home/git/repositories# chown -R git *
[email protected]:/home/git/repositories# chgrp -R git *

(5)出现failed to push some refs to ‘[email protected]:channelv.git’

在Windows上使用TortoiseGit执行Push时出现以下错误

git.exe push --progress  "origin" master:master

Counting objects: 189, done.
Compressing objects: 100% (158/158)
Writing objects: 100% (189/189), 1016.00 KiB | 997 KiB/s
Writing objects: 100% (189/189), 1.12 MiB | 997 KiB/s, done.
remote: error: ‘receive.denyCurrentBranch‘ configuration variable to ‘refuse‘.
To [email protected]:channelv.git
! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to ‘[email protected]:channelv.git‘

git did not exit cleanly (exit code 1)

在服务器对应的库目录下执行以下命令增加配置即可

git config --bool core.bare true

6. 在git clone出gitolite-admin.git的代码的时候,可能会出现”Agent admitted failure to sign using the key”这个问题,然后让我们输入hosting user的密码。

$ git clone [email protected]:gitolite-admin.git
Cloning into ‘gitolite-admin‘...
Agent admitted failure to sign using the key.
[email protected]‘s password: 
Permission denied, please try again.
[email protected]‘s password: 
Permission denied, please try again.
[email protected]‘s password: 
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly
$

这是SSH的问题。参考资料[3]中提供了解决方法:

https://help.github.com/articles/error-agent-admitted-failure-to-sign

centos 安装git server

时间: 2024-10-21 14:15:50

centos 安装git server的相关文章

centos 安装FTP server详情(转)

centos 安装FTP server详情 分类: linux 2013-12-27 16:45 227人阅读 评论(0) 收藏 举报 我们这里以安装vsftpd 服务器端为例子: 1.进入到centos 终端上 首先执行 yum search vsftpd 查看安装软件名字; 2.然后安装 列出来的软件名,首选第一个 yum install vsftpd,开始执行安装 3.安装好后通过 service vsftpd status 查看ftp 运行状态 如果没运行 可以使用 service vs

CentOS 如何安装git server

安装git 1. Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel 2. 然后到官网http://git-scm.com/download/linux下载最新版本源码安装,或者使用系统提供的包管理工具安装. wget https://www.kern

阿里云上配置CentOS安装Git(小沐git安装命令全集整理版)

步骤比较简单 主要是记录下 实现的过程 备忘! 比较详细的教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000 CentOS的yum源中没有git,只能自己编译安装 确保已安装了依赖的包 yum install curl yum install curl-devel yum in

CentOS安装RStudio Server

环境:CentOS6.4 64 一.安装epel-relase #yum install epel-release 修改/etc/yum.repo.d/epel.repo 将#baseurlmirrorlist改成baseurl#mirrorlist 安装R语言 #yum install R 安装RStudio Server # sudo yum install openssl098e # Required only for RedHat/CentOS 6 and 7 # wget http:/

CentOS安装Git服务器 Centos 7.0 + Git 2.2.0 + gitosis (实测 笔记)

环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 服务器IP:192.168.1.31 域名:www.domain.com SSH端口:8200(默认为22) 安装步骤: 1.显示服务器版本[[email protected] ~]# cat /etc/redhat-release#CentOS Linux release 7.0.1406 (Core) [[email protecte

centos安装git 2.0版本

本地服务器版本:[root@vm_001034_op-test git-2.0.5]# cat /etc/redhat-release CentOS release 6.5 (Final)[root@vm_001034_op-test git-2.0.5]# 笔者从网上找了很多资料,最终参考几份资料才安装成功的.原因很简单,就是没有安装git的依赖包.以下yum是执行的一些解决依赖的yum命令,有些报错有些成功,应该是最后几条生效解决了 :yum groupinstall "Developmen

在CentOS安装git

通过winscp将window的git包上传到Linux的/root/目录下 #下载地址:http://3maio.com/html/git/packages/git-2.9.0.tar.gz 解压git # tar -zxvf git-2.9.0.tar.gz 安装curl-devel //使用yum安装之前,记得挂载 # yum -y install curl-devel 安装git # cd git-2.9.0 # ./configure --prefix=/usr/local/git #

CentOS安装Git服务器

1.安装Git $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel $ yum install git 接下来我们 创建一个git用户组和用户,用来运行git服务: $ groupadd git $ adduser git -g git $ passwd git 注意这里有两种授权客户端获取的方式 一种是口令 一种是公钥 这里就是设置口令 但是比较不安全 2.创建证书登录 收

Centos 安装GIT 1.8.2.1

1.下载rpm安全包 wget http://mirror.umd.edu/fedora/epel/6/i386/epel-release-6-8.noarch.rpm 2.rpm安装安全包 yum remove epel-releaserpm -ivh epel-release-6-8.noarch.rpm 3.安装git yum listyum install -y git 4.查看git安装版本 git --version