Linux安装——git服务器搭建

今天刚从阿里云买了一台云服务,搭建了一个svn,后来发现代码不能同时上传两个服务器的svn,于是乎就起了搭一个git库的想法。
经过一天的反复琢磨,总算是搭起来了,下面分享一下流程和我遇到的一些问题:

PS:接下来的命令我都是在root权限输入的,所以没有加sudo,用普通用户登录服务器的同学注意一下。

1.安装git

我的服务器是乌班图14.04版本,直接用apt-get就可以安装了,上命令:

apt-get install git

由于我新买的服务器,在安装过程中遇到了404的错误,这是因为刚买的服务器,可能是库里没有这个包,需要更新一下源文件,update一下就好了,上命令:

apt-get update

更新完之后顺利完成安装。

2.创建一个git仓库

git安装完成后,该创建一个远程仓库了,在/home/git 目录下创建一个空git仓库,名字随便起,但后面一定要加上.git,命令:

git init --bare myrepertory.git 

命令敲完后会提示你创建了一个空的git仓库,这样仓库就创建好了。

3.创建一个git账户

git有了,仓库也有了,接下来需要一个账号可以访问git服务器(不能用root账户,root权限太高了),所以需要在Linux下创建一个git专用账户,这也很简单,一句命令就完事:

adduser git

4.配置ssh

因为你要上传代码或者clone代码,需要远程连接服务器,所以需要一系列的ssh配置,让你使用的这个客户端可以不用密码访问git服务器,在这一步骤中有两个角色,一个是git服务器,一个是你日常敲代码用的服务器(下文用‘代码服务器’表示)。
1. 首先,一般的Linux都会自带ssh的相关软件,没有装的话 apt-get 一下就行了。
2. 然后找到你创建的git用户所在的目录(注意是git账户,不是git库),看看是否有.ssh文件夹,如果没有就创建一个新的.ssh文件夹,并在这个文件夹下新建一个叫authorized_keys 的文件,上命令:

mkdir .ssh
touch authorized_keys

3. authorized_keys这个文件是用来储存代码服务器的ssh公钥的,这样git服务器可以判断外来链接是否需要认证。当然,这个秘钥也是需要手动生成的(在代码服务器端),在生成秘钥之前需要去/root/.ssh目录下看下是否有id_rsa 和id_rsa.pub这两个文件,如果存在的话就不需要在生成了,因为已经存在了,直接将id_rsa.pub打开,复制里面的内容到上一步骤中创建的authorized_keys中就可以了。如果目录下没有这两个文件,就执行一条命令,然后狂按回车就ok了。上命令:

ssh-keygen -t rsa


4. 创建好秘钥,找到秘钥位置(/root/.ssh/id_rsa.pub),查看秘钥把里面内容(全部)复制到步骤二中创建的authorized_keys中,注意:一行一个秘钥。查看命令:

cat id_rsa.pub

5.设置git账户权限

之前的步骤是的git账户可以不用密码直接登录服务器,这也意味着可以不用密码登录shell,出于安全性考虑,限制git账户的登录权限,只能让他使用ssh。更改用户权限的文件在/etc/passwd,找到它并找到类似下面的一行:

git:x:1000:1000:1,1,1,1,1:/home/git:/bin/bash

将他改成

git:x:1000:1000:1,1,1,1,1:/home/git:/usr/bin/git-shell

就ok啦。

6.测试

git服务器算是搭好了,我测试了一下,还是发现了个问题,我在另一台云服务器上克隆一个文件,命令:

git clone git@host:/home/git/myrepertory.git

还是需要输入密码,于是百度了一下,是ssh配置的问题,在/etc/ssh/sshd_config文件中,将这几个属性改下就解决了:

StrictModes no
RSAAuthentication yes
PubkeyAuthentication yes

改完重启一下,就万事大吉了。

还有一个问题需要注意一下,在创建完git库之后要记得把git库的权限给到git账户,如果还是root账户的话,在提交代码的时候会报错导致上传失败。查看权限以及更改权限的命令:

ls -la  #此处需要进入git库的上级目录查看权限
chown -R git:git myrepertory.git(你创建的git库位置)

上一张报错的图片,苦逼的找了半天解决办法:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值