git+ubuntu+ssh服务器搭建过程

发布时间:2018-07-02 01:00:08   来源:文档文库   
字号:

git服务器搭建过程

参考网上资料搭建git服务器过程记录 如下:

硬件需求

一台IBM服务器:四核,CPU(主频 2Ghz以上),内存4G500G的硬盘(3块,都做了raid0,能够接入网络

软件需求:ubuntu安装盘(Ubuntu10.10服务器版),git-core, gitosis, openssh-server, openssh-clientsambagitkgit-gui

一、 安装ubuntu系统

安装系统的界面大致如下:

1, 选择语言种类,并选择是试用ubuntu还是安装ubuntu。选择English,并选择安装ubuntu

2, 选择时区:Asia China(Shanghai)

3, 选择键盘模式:USA

4, 分区:选择手动分区,并对其中一块硬盘进行手动分区。/分配30G存储空间,文件系统类型为ext4/swap分配2G存储空间,文件系统类型为swap/tmp分配20G存储空间,文件系统类型为ext4/boot分配10G存储空间,文件系统类型为ext4,剩余的空间都分配给/home,文件系统类型为ext4

5, 设置用户名和密码。注意:设置的用户名中不能有 . 等特殊字符。假定设置用户名为gitserver

6, 确认之前输入的信息,确认无误后前进。

7, 开始安装。

安装完成后重启机器,用步骤5中设定的用户名密码登陆系统。

二、 安装软件

进入系统后,需要对系统进行更新,否则后面安装其他软件时可能会安装不成功。

1, 更新系统(gitserver账户下进行

打开终端,先执行sudo apt-get update命令,然后执行sudo apt-get upgrade命令。

sudo apt-get update:与服务器同步软件包列表,这里的服务器是指系统在sourcelist文件中的源。

sudo apt-get upgrade:升级所有可升级的软件包,如果可升级的软件包依赖于新的软件包,那么新的软件包也会被安装。

2, 安装openssh的服务器端(gitserver账户下进行

本地已经下载了Opensshdeb包,可以直接安装。打开终端,cddeb包所在的路径,然后执行命令sudo dpkg –i opensshxxx.deb。完成安装。

如果本地没有提前下载软件的deb包,那么在网络连接正常的情况下,可以直接在终端输入sudo apt-get install openssh-server,按照提示即可完成安装。

Sudo dpkg –I opensshxxx.deb:安装当前目录下的opensshxxx.deb包。

Sudo apt-get install openssh-server:从源中下载openssh-server,并自动安装。

3, 修改ssh的配置文件(gitserver账户下进行

将配置文件按如下内容修改:

Port 22 #ssh服务的登录端口

PermitRootLogin no #禁止root用户登录

StrictModes yes #检查密钥的用户和权限是否正确

RSAAuthentication yes #启用RSA认证

PubkeyAuthentication yes #启用公钥认证

Password Authentication no #禁止密码认证

ServerKeyBits 1024 #serverkey强度改为1024比特

PermitEmptyPasswords no #禁止空密码登录

修改了ssh的配置文件后,必须要重启ssh服务,配置才能生效

4, 重启ssh服务(gitserver账户下进行

打开终端,执行sudo /etc/init.d/ssh restart命令,返回ok,重启ssh成功。

5, 安装git-coregitkgit-guigitserver账户下进行

这几个软件的安装包都已经下载到本地,安装方式同openssh一样,使用sudo dpkg命令安装。也可以直接从源上下载并安装。sudo apt-get install git-core gitk git-gui

6, 安装gitosisgitserver账户下进行

在你喜欢的位置下,新建一个文件夹,用来存放下载的gitosis安装文件,如

mkdir gitosis-setup #创建文件夹用来存放gitosis的安装文件

cd gitosis-setup #转移到gitosis-setup目录下

git clone git://eagain.net/gitosis #gitosis的安装文件克隆到gitosis-setup目录下

cd gitosis #转移到gitosis目录下

sudo python setup.py install #安装gitosis

注意:在执行sudo python setup.py install前,需要保证已经安装了pythonsetuptools软件(sudo apt-get install python-setuptools.py)。在实际操作时,安装setuptools遇到了困难,源中没有此软件包的地址,于是手动在python的官网上下载了一个ez_setup包,cd ez_setupsudo python ez_setup.py install成功安装setuptools。最后再执行sudo python setup.py install成功安装gitosis

7, 新建账户(gitserver账户下进行

截止到现在,gitserver账户下的操作已经完成。这时,我们需要在服务器上新建一个账户,用来管理git仓库和gitosis-admin。使用如下命令新建账户:

sudo useradd –m git:创建一个名为git的账户

sudo passwd git:运行此命令后,可设置git账户的密码

8, 生成管理员密钥(此操作在git管理员的PC上进行

git管理员的PC上,先安装msysgitwindows系统),安装后,打开git bash,运行如下命令生成管理员的公钥:

ssh-keygen –t rsa #生成rsa密钥

运行以上命令后,可默认根据提示直接回车。回车后即在当前用户的目录下生成了.ssh/id_rsa.ssh/id_rsa.pub。其中.ssh/id_rsa是私钥,,.ssh/id_rsa.pub是公钥。接下来可以使用如下命令将git管理员的公钥传输到git服务器上,也可以直接拿U盘拷贝到git服务器。

scp /.ssh/id_rsa.pub gitserver@IP:/tmp/id_rsa.pub #将管理员的公钥传到服务器tmp目录下

9, 初始化gitosisgitserver账户下进行

进入到拷贝过来的id_rsa.pub所在目录:cd /tmp。执行如下命令初始化gitosis

Sudo chmod 777 id_rsa.pub

Sudo –H –u git gitosis-init < is_rsa.pub,其中git是指在以上第7步中新建账户的账户名。

此时,会在/home/git目录下生成两个文件夹,分别是gitosisrepositoriesrepositories下存放的是gitosis-admin.git的仓库。为了让别人能够clone gitosis-admin.git,需要执行以下操作:sudo chmod 755 /home/repositories/gitosis-admin.git/hooks/post-update。至此,gitosis的安装工作已经完成。

10, 新建项目的git仓库(git账户下进行

在任意位置新建一个文件夹(/home/git/git_repo/TEST.git,cd到该目录下,执行sudo git --bare init命令,现在TEST.git就作为一个空的git仓库存在了。注意在初始化时一定要使用--bare选项。

11, 为普通用户配置访问权限(此操作在git管理员的PC上进行

要配置访问权限,需要修改gitosis的配置文件。Gitosis是通过一个git仓库来管理配置文件的,在git管理员的PC上,在任意你喜欢的目录下新建一个存放gitosis-admin仓库的目录

Mkdir gitosis-admin

Git clone git@IP:gitosis-admin.git

执行完上述命令,将gitosis-admin的仓库clone到本地了,进入gitosis-admin仓库目录,会看到gitosis.conf文件和/keydir/xxx.pub,其中xxx的格式为git管理员账户名@git管理员机器名。/keydir目录下是所有用户的公钥,gitosis.conf文件用于配置用户和权限,打开gitosis.conf文件,内容为:

[group gitosis-admin]

Writable = gitosis-admin

Members = git管理员账户名@git管理员机器名

这个就是管理组的权限,members中的用户名就是之前上传的公钥里面的用户名。

添加git普通用户的公钥添加到keydir目录下,并且将gitosis.conf修改为:

[gitosis]

Gitweb =yes

[group gitosis-admin]

Writable = gitosis-admin

Members = git管理员账户名@git管理员机器名

[group TEST]

Writable = TEST

Members = git管理员账户名@git管理员机器名 git普通用户账户名@git普通用户机器名。

其中gitweb=yes表示启用对gitweb的支持。然后添加了git普通用户对TEST仓库的写权限,并且新建了一个叫TEST的组。

完成修改后,需要执行以下操作将修改push到服务器:

git commit –a –m “add user xxx to modify TEST”

git push

这样,就更新了服务器端的权限设置。

至此,服务器端的配置完成,团队成员可以在客户端进行对仓库的读写操作。

本文来源:https://www.2haoxitong.net/k/doc/a117750c4a7302768e9939e7.html

《git+ubuntu+ssh服务器搭建过程.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式