您好, , 海量一手媒体资源,专业、正规、高效,为企业提供一站式营销推广服务!
温馨提示
运营小帮手
一站式互联网营销服务平台
  全国免费咨询热线
0755-23071973
运营小帮手
软文发稿
PC端 选择媒体
更方便、更快捷!
查看媒体价格
软文发布、软文代写、百科制作、问答营销、微信营销、微信营销
查看媒体价格
当前位置: 运营小帮手首页 > 新闻中心 > 文章正文

CentOS上安装git服务器

本人非后台开发人员,但是也学了一些后台开发知识,一直很好奇什么是git服务器。本人毕业以来一直从事ios开发,但是在业余时间也学习了ThinkPHP框架、HTML5CSS3JavaScript,做过网站,因此可以说前后端都有所了解了,可从来没有搞过服务器。

本文就是首次学习如何在阿里云上搭建git服务器时所写下的记录,包括遇到的一些问题。这个过程也折腾了我不少时间,通过百度搜索出来的文章中都是只讲大致过程,没有具体到所有步骤,导致按照其文章说明去搭建时出现了不少问题,最终也没有折腾出来。因此,本人在此写下最简单的搭建git的方式,不过每次访问git仓库时,都需要输入密码。虽然如此,但是这是最简单的搭建方式,对于某些朋友、同学来说已经可以了,因为对于那些不是专业搞服务器的人员,真的很难搞明白。

我们不专业?一样可以搭建出来!!!

注意:本文中只记录如何安装git,以及创建git仓库,并可以通过正常的ssh访问到。对于git权限分配,这里不说明,因为这篇文章的写作目的是帮助像我这样的非专业人士简单地搭建出来。下一篇文章,我们再介绍如何通过gitosis来管理git权限。

环境

公网IP地址:101.101.101.101

操作系统:CentOS 6.5 64位

提示:不同的操作系统,其操作命令不都是一样的,因此本文记录的只是在CentOS 6.5 64位操作系统上搭建git服务器的过程。对于其它操作系统,请参考他人的博文。

前提条件

在进行下一步之前,我们必须要准备好相关条件。

首先,我们需要懂得如何连接远程终端:在阿里云管理控制台中,找到云服务器ECS,然后找到实例,看到实例的右边有一个更多,点击它就可以弹出相关操作选项,然后点击连接远程终端。

其次,在首次进入连接远程终端时,会提示一个密码,这时候一定要记住。当然,如果没记住,也没有关系,我也没有记录下来,所以就查如何修改密码。修改密码:在阿里云管理控制台中,找到云服务器ECS,然后找到实例,下边有一个重置密码,点击它就可以修改密码了,这个是登录操作系统的密码。

然后,记住连接管理终端的密码,如果忘记了,没有关系,弹出的窗口中下方有一个修改终端密码。修改好就可以了。

最后,进入到管理终端后,登录的用户为root,密码就是第二步中所记录下来的密码。这个密码要求必须有大写字母、小写字母和数字组成,要求8个长度以上。一定要记住了,以后每次登录都需要到此密码。

安装openssh

登录阿里云远程终端,登录成功后,在终端中输入以下命令来安装openssh服务器与客户端工具:

sudoyuminstallopenssh-serveropenssh-client

提示:可以直接复制命令,然后在远程终端右上角有一个复制命令输入,我们点击它,然后将我们复制的命令粘贴,点击就可以执行。

安装git

通过下面的命令来安装git

sudoyuminstallgit-core

安装python工具

sudoyuminstallpython-setuptools

添加用户

在安装完git后,我们需要添加一个用户:

sudouseraddgit
sudopasswdgit

其中第一条命令是添加用户git,注意这里的git是用户,不是文件夹。第二条命令是给git用户设置密码,这个一定要记住后。

可以不使用sudo,若提示Permission denied,再使用sudo也是可以的。

提示:如果操作过程感觉不对,想要删除该用户重新操作,看下面的方案:

Centos删除用户git时候提示:

userdel:usergitiscurrentlyloggedin.

当提示当前正处于登录状态时,先执行下面的命令,再重启服务器:

mv/var/run/utmp/var/run/utmp_touch>/var/run/utmp

重启服务器后,再输入以下命令就可以删除了,其中git就是刚才我们创建的用户:

sudouserdel-rgit

配置git仓库

这里,我们切换到用户git

sugit

然后就可以创建仓库,我们创建repository作为仓库,以后所有的git项目都放到这个仓库中:

cd/home
mkdirgit
cdgit
mkdirrepository

这里共有四条命令,一步步执行。从此以后所有源码的root都在/home/root/repository目录下了。

下面需要给它权限。如果在用户git下不能操作,就切换到root用户下用sudo操作。切换用户为:su root,然后输入密码就可以切换了。

chowngit:git/home/git/repository
chmod755/home/git/repository

接下来,全局配置git用户信息,设置值时,修改成自己的值:

gitconfig--globaluser.name"huangyibiao(需替换)"
gitconfig--globaluser.email"huangyibiao@163.com(需替换)"

创建仓库

下面我们创建一个空的仓库,并初始化,然后测试是否成功。

mkdir/home/git/repository/testproject
gitinit--baretestproject

这里的testproject是一个目录,也就是我们的仓库。先创建目录,然后初始化仓库。执行该命令成功后/home/git/repository/下生成了一个testproject目录,该目录里面只有一个.git文件夹。

外部测试一下是否能正确访问,在我的用于开发的电脑上,通过终端terminal访问:

gitclonegit@101.101.101.101:/home/git/repository/testproject

然后在终端打印出下面的信息,就说明成功地clone下来了。注意,这里项目的路径在服务器这边是/home/git/repository/testproject,一定要写全了。

Cloninginto'testproject'...
remote:Countingobjects:3,done.
remote:Compressingobjects:100%(2/2),done.
remote:Total3(delta0),reused0(delta0)
Receivingobjects:100%(3/3),55.35KiB|0bytes/s,done.
Checkingconnectivity...done.

然后我们随便放一个文件到这个目录下,然后提交:

cdtestproject/

//查看添加文件是否有状态变化
gitstatus

gitadd.
gitcommit-m"提交一个测试文件"
gitpushoriginmaster

当我们push后,出下面的信息就说明成功了:

gitpushoriginmaster
Countingobjects:3,done.
Deltacompressionusingupto4threads.
Compressingobjects:100%(3/3),done.
Writingobjects:100%(3/3),21.97KiB|0bytes/s,done.
Total3(delta0),reused0(delta0)
Togit@101.101.101.101:/home/git/repository/testproject
b84af6c..4867d46master->master

终端连接阿里云

每次都到阿里云实例连接远程终端是不是很麻烦?我们可以不用到网站操作,直接在我们本机的终端就可以直接连接远程,并操作。

首先,其端口是22,因此我们在本机需要先修改一下本机的端口:

编辑ssh_config文件,找到Port,将Port 5680改成Port 22。注意,可能公司所使用的git的端口号为5680,在操作公司用的项目时,再执行这里的步骤,然后修改端口为5680

//然后输入本机的密码,这里是使用管理员权限
sudo-s

vi/etc/ssh/ssh_config

//然后在终端保存、退出
:wq

下面我们连接远程服务器:

sshgit@101.101.101.101

其中,101.101.101.101是本人的服务器的公网ip,这里只是15免费云,所以拿来练手的。git是用户,我们在前面的步骤中添加过git用户。这一步骤,会先寻找公钥,如果没有,则提示输入密码,输入密码即可登录。不过登录的是git用户,并非是root用户。要切换到root用户,通过su root然后输入密码即可。

生成rsa公私钥

每次连接都需要输入密码,是否觉得很麻烦?我们可以通过添加公钥、密钥来处理。

ssh-keygen-trsa

上面是生成rsa密码,这时会提示保存到哪里。如果您还没有在本机添加过任何的rsa,那么使用默认路径即可。如果原来已经有了id_rsaid_rsa.pub文件怎么办?我们在保存时,输入别的路径:

Generatingpublic/privatersakeypair.
Enterfileinwhichtosavethekey(/Users/huangyibiao/.ssh/id_rsa):

默认路径为:/Users/用户名/.ssh/id_rsa。由于本机已经存在了,我们换一下名称:

Generatingpublic/privatersakeypair.
Enterfileinwhichtosavethekey(/Users/huangyibiao/.ssh/id_rsa):

/Users/huangyibiao/.ssh/id_rsa_test

此时会提示输入密码,这个密码一定要记住,这里输入的是:123456。 那么就生成了两个文件,一个是id_rsa_test私钥,另一个是id_rsa_test.pub公钥。

接下来,我们还需要将这个公钥上传到服务器这边:

scp/Users/huangyibiao/.ssh/id_rsa_test.pubroot@101.101.101.101:/home/git/

上传成功后,在本机操作:

vi/Users/huangyibiao/.ssh/config

然后添加以下内容,以便在校验时,能找到我们密钥:

host101.101.101.101
IdentityFile/Users/huangyibiao/.ssh/id_rsa_test

如果服务端这边需要配置多个公钥,我们可以这么做:将所有的公钥都放到authorized_keys文件中。

cat/home/git/id_dsa.pub>>/home/git/.ssh/authorized_keys

如果没有.ssh目录,就先创建mkdir .ssh。如果没有authorized_keys,就先创建。

现在我们在别的机器上访问:

sshgit@101.101.101.101

mac电脑上就出现了访问钥匙串的提示,要求将我们生成这个私钥/公钥时所指定的phrase输入,这个就是其密码。以后每次执行上面的命令连接服务器,就会自动去读取钥匙串,然后自动连接了。

如果我们使用root权限登录,还是要求输入root用户的密码的。

ssh101.101.101.101

root@101.101.101.101'spassword:
Lastlogin:FriNov623:57:452015from106.39.222.47

WelcometoaliyunElasticComputeService!

[root@iZ25v54cz28Z~]#

如果我们指定为git用户登录:

$sshgit@101.101.101.101

Lastlogin:SatNov710:04:272015from106.39.222.47

WelcometoaliyunElasticComputeService!

不再需要输入密码了,直接就可以登录了。

关键词:

猜您可能需要的服务: