Git 服务器搭建与客户端安装

大纲:

一、前言

二、搭建Git服务器

  • yum安装Git服务器
  • 创建一个git用户,用来运行git服务
  • 创建客户端登录证书
  • 初始化Git仓库
  • 禁用shell登录
  • 克隆远程仓库

三、安装客户端

  • Windows 客户端
  • Linux 客户端

四、总结

注,测试机 CentOS 5.5 x86_64,Git 服务器版本:git version 1.8.2.1,客户端版本:git version 1.9.2.msysgit.0。所有软件请到这里下载:http://msysgit.github.io/

一、前言

在上一篇博客中我们主要讲解Git是什么,Git的基本原理,讲解一些有关Git的基础知识,让我们简单的了解一下Git,当然我们还有很多问题没有搞清楚,嘿嘿!不管理怎么样,在我们弄清楚这些问题之前,我们得有台Git服务器是吧,嘿嘿!好了,下面我们就来一起搭建一台Git服务器。

二、搭建Git服务器

1.yum安装Git服务器


1

[[email protected]
~]
yum
install -y git

2.创建一个git用户,用来运行git服务


1

[[email protected]
~]
#
adduser git

3.创建客户端登录证书

注,收集所有需要登录的用户的公钥,就是他们自己生成的id_rsa.pub文件,把所有公钥复制到/home/git/.ssh/authorized_keys文件里,一行一个。嘿嘿!

1).客户端生成id_rsa.pub文件的命令


1

2

3

ssh-keygen
-t rsa

cat  .ssh/id_rsa.pub

ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEA6NwUHeNNi+PC6KlrcJrXXDmKxRMmgHIPp79sgX6zqfdSlmNj7rBPQeyEKS9Wg8yI6jd8aG2jsUx99Vjti2VK2vEXKkRHxwID7ri69gE71RfDtv6ekafnzLo14J8hAp0spMk+N3wEAQRYDmcYo1wmnm
/jMBedGrHj4NJQ1vYy1hVtJasGMSzjcMrlz9qvaluWnQ5tQjKFQVVwKsRRRzs8qTvzVhLJt4NQ+CAN45tqfsRuf58Uba9QNK7/6xSUiIKXQiILz8PMGJ3MnlV+eN3wx2aeztdevxu9plggtG05SMmd8GNVzXrN1IaxXSvz0UwjQ2kygu7aCqO8AZWH49rouw==
[email protected]

注,一路回车即可,将生成的id_rsa.pub,复制给管理员,帮你在服务器上增加一下,下次你用git时就不需要输入用户名和密码了。

2).查看服务器上authorized_keys文件


1

2

3

4

[[email protected]
~]
#
cat /home/git/.ssh/authorized_keys

ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAwMU4FKB6NRc3XSoIunWsdvVVuSoncbVb5Al6lB3ciswBVd++YmJFhqwkITNGccrO5sycROs9+Fbjgd6oBSzNuaBtCIbwNNsEyM
/henTl2euI3XsnJQ/ITr6c/q0P3WoGl4E2QFQ2kZqs+1eDC0CgHcBrqvFv1Jr414sVYK9lfZwIF+jDdtaBOrSJuq1Agx9pGUFUEB4tQfkXxsWm/MvOmKAVvduKDE1eenUEL9zzyeELPcSXLe3NOoTjZhkX6EEXxQR1ZiZRFywLpfM4qopZ10to2KIUyVtzw6hx6V3cg7kn40lYVW0EAMATw9dVldwcRUI+kJzJSKUTKDVSwY3/+Q==
[email protected]

ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAsmmJuR+KhRSpdSirCiL30RA8WbfgicY1z7itWVnKHJW6hTuJFhzruY59FilVjJR1hbQBluP9JnK3XPSK9PSg+bwiJ2iQRa39rXck35r+trVOLyNbPyfKVRfOemD8YuykMlyr5JeW8gZjsHEuLnJ8
//RiCiYzd3RT/SSUQ4yawDoIIWkz3eUSL09xoCRZFBsAp+S/LD3vx2MN+FNOHwvqcE+yK3oRNIqjWwLoKE0e5TRnqNgrPQ95PJYB3XPUulzaeMwsWPZs7jIUMl/5yEqSgAkioa8SVMOsikYJG/erv99NNVgFmpCBIiWqKEGkNrIpYzLLHDSYQ4g5Gbci/RZ54Q==
[email protected]

ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEA6NwUHeNNi+PC6KlrcJrXXDmKxRMmgHIPp79sgX6zqfdSlmNj7rBPQeyEKS9Wg8yI6jd8aG2jsUx99Vjti2VK2vEXKkRHxwID7ri69gE71RfDtv6ekafnzLo14J8hAp0spMk+N3wEAQRYDmcYo1wmnm
/jMBedGrHj4NJQ1vYy1hVtJasGMSzjcMrlz9qvaluWnQ5tQjKFQVVwKsRRRzs8qTvzVhLJt4NQ+CAN45tqfsRuf58Uba9QNK7/6xSUiIKXQiILz8PMGJ3MnlV+eN3wx2aeztdevxu9plggtG05SMmd8GNVzXrN1IaxXSvz0UwjQ2kygu7aCqO8AZWH49rouw==
[email protected]

说明:我这里有三个用户登录服务器,所以我这里就有三个ssh-rsa,大家可以看一下。

4.初始化Git仓库

注,先选定一个目录作为Git仓库,这里是/data/git/project.git。


1

2

3

4

[[email protected]
~]
#
cd /data/git/

[[email protected]
git]
#
git init --bare project.git

[[email protected]
project.git]
#
ls

branches 
config  description  HEAD  hooks  index  info  objects  refs

执行以上命令 Git命令,会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:


1

2

3

4

[[email protected]
git]
#
chown -R git.git project.git

[[email protected]
git]
#
ls -l

总计
4

drwxr-xr-x
7 git git 4096 05-09 13:50 project.git

5.禁用shell登录

注,出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:


1

2

[[email protected]
~]
#
cat /etc/passwd | grep git

git:x:1001:1001:git
version control:
/home/git:/bin/bash

改为:

1

2

[[email protected]
~]
#
vim /etc/passwd

git:x:1001:1001:git
version control:
/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

6.克隆远程仓库

注,现在可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:

注,$ git clone [email protected]:/data/git/project.git,其中git用户名,git.jjhh.com服务器,/data/git/prgject.git是仓库路径。好了,到这里服务器的搭建到这里就完成了,下面我们来安装一下客户端。

三、安装客户端

1.Windows 客户端

1).下载客户端

注,大家到这里下载http://msysgit.github.io/。下面简单演示一下安装过程,比较简单:

好了,到这里就安装完成了,安装好以后会在桌面上有个图标,你双击打开即可。如下图:

2.Linux 客户端

注,Linux客户端安装就比较简单了,直接用yum安装一下就好!


1

[[email protected]test ~]#
yum install -y git

到这里git就安装完成了,下面我们查看一下版本:


1

2

[[email protected]test ~]#
git --version

git
version 1.8.2.

下面我们生成公钥并复制到服务器上:


1

2

3

4

5

6

7

8

9

10

11

12

[[email protected]test ~]#
ssh-keygen -t rsa

Generating
public
/private rsa
key pair.

Enter file in which to
save the key (
/root/.ssh/id_rsa):

Created
directory 
‘/root/.ssh‘.

Enter
passphrase (empty 
for no
passphrase):

Enter
same passphrase again:

Your
identification has been saved 
in /root/.ssh/id_rsa.

Your
public key has been saved 
in /root/.ssh/id_rsa.pub.

The
key fingerprint is:

48:3c:22:76:02:f1:a2:e5:27:22:cb:4f:a7:a0:98:9d
[email protected]
test.com

[[email protected]test ~]#
cat .ssh/id_rsa.pub

ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAwrmgNAca77BKzXl6BP11fdaclAoWfW+x4kPDZMPj1zFoML9JfOAS7DGY9quLMitwwfg5+U7zP
/egPmAhSKCECubmodzMucnRSkJGgKCt1SlctRNDRN3OIvrecAtdZfDcBaWKLjaVzGPmhweLhr6HzfqeZU09Ccis4yK3RMwip2f+K1ZZVIOKUmL4AVFl9dqtxnQ4HlW61PUxvM/ug2M68Z0jQk5DVG8w5+dvGqX1qr5YABD1NX5Jz6aUbVVx7yyoORENxu6SK83GI/V7eOkrvBMDh9nDdwvDhPhuhBDSfE+Xi92hPJPKdNroF1vx8HMvpHME20MmjSwavPrz+B18MQ==
[email protected]
test.com

下面我们复制id_rsa.pub里的公钥到服务器的authorized_keys文件中。


1

2

3

4

5

6

7

[[email protected]
~]
#
su git

bash-3.2$ cd

bash-3.2$
vim .
ssh/authorized_keys

ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAwMU4FKB6NRc3XSoIunWsdvVVuSoncbVb5Al6lB3ciswBVd++YmJFhqwkITNGccrO5sycROs9+Fbjgd6oBSzNuaBtCIbwNNsEyM
/henTl2euI3XsnJQ/ITr6c/q0P3WoGl4E2QFQ2kZqs+1eDC0CgHcBrqvFv1Jr414sVYK9lfZwIF+jDdtaBOrSJuq1Agx9pGUFUEB4tQfkXxsWm/MvOmKAVvduKDE1eenUEL9zzyeELPcSXLe3NOoTjZhkX6EEXxQR1ZiZRFywLpfM4qopZ10to2KIUyVtzw6hx6V3cg7kn40lYVW0EAMATw9dVldwcRUI+kJzJSKUTKDVSwY3/+Q==
[email protected]

ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAsmmJuR+KhRSpdSirCiL30RA8WbfgicY1z7itWVnKHJW6hTuJFhzruY59FilVjJR1hbQBluP9JnK3XPSK9PSg+bwiJ2iQRa39rXck35r+trVOLyNbPyfKVRfOemD8YuykMlyr5JeW8gZjsHEuLnJ8
//RiCiYzd3RT/SSUQ4yawDoIIWkz3eUSL09xoCRZFBsAp+S/LD3vx2MN+FNOHwvqcE+yK3oRNIqjWwLoKE0e5TRnqNgrPQ95PJYB3XPUulzaeMwsWPZs7jIUMl/5yEqSgAkioa8SVMOsikYJG/erv99NNVgFmpCBIiWqKEGkNrIpYzLLHDSYQ4g5Gbci/RZ54Q==
[email protected]

ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEA6NwUHeNNi+PC6KlrcJrXXDmKxRMmgHIPp79sgX6zqfdSlmNj7rBPQeyEKS9Wg8yI6jd8aG2jsUx99Vjti2VK2vEXKkRHxwID7ri69gE71RfDtv6ekafnzLo14J8hAp0spMk+N3wEAQRYDmcYo1wmnm
/jMBedGrHj4NJQ1vYy1hVtJasGMSzjcMrlz9qvaluWnQ5tQjKFQVVwKsRRRzs8qTvzVhLJt4NQ+CAN45tqfsRuf58Uba9QNK7/6xSUiIKXQiILz8PMGJ3MnlV+eN3wx2aeztdevxu9plggtG05SMmd8GNVzXrN1IaxXSvz0UwjQ2kygu7aCqO8AZWH49rouw==
[email protected]

ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEAwrmgNAca77BKzXl6BP11fdaclAoWfW+x4kPDZMPj1zFoML9JfOAS7DGY9quLMitwwfg5+U7zP
/egPmAhSKCECubmodzMucnRSkJGgKCt1SlctRNDRN3OIvrecAtdZfDcBaWKLjaVzGPmhweLhr6HzfqeZU09Ccis4yK3RMwip2f+K1ZZVIOKUmL4AVFl9dqtxnQ4HlW61PUxvM/ug2M68Z0jQk5DVG8w5+dvGqX1qr5YABD1NX5Jz6aUbVVx7yyoORENxu6SK83GI/V7eOkrvBMDh9nDdwvDhPhuhBDSfE+Xi92hPJPKdNroF1vx8HMvpHME20MmjSwavPrz+B18MQ==
[email protected]
test.com

下面我们clone一个仓库到本地的目录中。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

[[email protected]test ~]#
cd /data/dev

[[email protected]test dev]#
git clone [email protected]:/data/git/project.git

Cloning
into 
‘project‘...

The
authenticity of host 
‘git.jjhh.com
(114.112.173.150)‘
 can‘t
be established.

RSA
key fingerprint is ca:ec:a2:7e:e6:89:ca:19:d3:93:7f:4b:c3:c0:c7:fd.

Are
you sure you want to 
continue connecting
(
yes/no)? yes

Warning:
Permanently added 
‘git.jjhh.com,114.112.173.150‘ (RSA)
to the list of known hosts.

remote:
Counting objects: 50, 
done.

remote:
Compressing objects: 100% (42
/42), done.

remote:
Total 50 (delta 21), reused 0 (delta 0)

Receiving
objects: 100% (50
/50),
4.02 KiB, 
done.

Resolving
deltas: 100% (21
/21), done.

[[email protected]test dev]#
ls

project

[[email protected]test dev]#
cd project/

[[email protected]test project]#
ls

index.html

好了,到这里我们的git客户端到这里就全部安装完成了。

原作

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-03 01:18:59

Git 服务器搭建与客户端安装的相关文章

SIP协议&开源SIP服务器搭建和客户端安装

1. SIP SIP 是一个应用层的控制协议,可以用来建立,修改,和终止多媒体会话,例如Internet电话 SIP在建立和维持终止多媒体会话协议上,支持五个方面: 1)   用户定位: 检查终端用户的位置,用于通讯. 2)   用户有效性:检查用户参与会话的意愿程度. 3)   用户能力:检查媒体和媒体的参数. 4)   建立会话: “ringing”,建立会话参数在呼叫方和被叫方. 5)       会话管理:包括发送和终止会话,修改会话参数,激活服务等等. 1.1 SIP基本组成要素 用户

git服务器搭建post-receive 钩子部署服务端代码

一.git服务器搭建(服务器用户:root) 安装git $ apt-get install git 创建git用户 $ adduser git$ passwd git //修改git用户密码 创建git仓库 $ cd /home$ mkdir git$ mkdir ./git/.ssh$ touch./git/.ssh/authorized_keys$ cd /home/git$ git init --bare test.git //初始化仓库$ chown -R git:git ../git

Windows下Git服务器搭建[转]

Windows下Git服务器搭建 作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 我们这里只需要两个软件git和ssh,软件版本如下,这两个版本的安装也是非常简单,基本只要注意一点即可:安装目录最好不要用默认路径,确保安装路径中没有空格.其他步骤基本一路Next即可. Git-1.8.1.2-preview20130201.exe Copssh_4.1.0_Installer.exe

CentOS 6.5下Git服务器搭建

1 关于版本控制 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.有以下三种版本控制系统: 1. 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别.这么做唯一的好处就是简单.不过坏处也不少:有时候会混淆所在的工作目录,一旦弄错文件丢了数据就没法撤销恢复. 为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异.图示如下, 2. 集中化的版本控制系统 集中

GIT服务器搭建及配置详解

用久了SVN,突然换了项目组,新的项目要求使用GIT,还有点点生疏,于是不得不重新翻看以前的学习笔记,在复习的过程中想到自己也已经工作两年了,也该学会总结和思考,便诞生了开始有计划的写微博的想法,想把自己无论是在工作实践中学到的还是书本学习到的以及学习的方法分享出来,写得好让大家也有所收获,写得不好就当"博"大家一乐. 这是我在51CTO的第一篇微博,今天主要分享:GIT服务器搭建及配置. 一.安装环境 操作系统:CentOS 6.4 二.检测是否已安装GIT git --versio

Ubuntu中Git服务器搭建

git服务器搭建过程 参考网上资料搭建git服务器过程记录 如下: 需求 硬件需求:一台Ubuntu或者debian电脑(虚拟机),能通过网络访问到. 软件需求:git-core, gitosis, openssh-server, openssh-client, Apache2(Gitweb) 安装配置git服务器 安装git和openssh: [email protected]:~$sudo apt-get install git-core openssh-server openssh-cli

基于阿里云服务器的git服务器搭建

使用阿里云Ubuntu 12.0.4 64位操作系统做git服务器. 首先git服务器有两种访问方式可以选择:http方式和ssh的方式,http方式更容易使用. 1.http方式的git服务器搭建以及使用git命令行访问: On the Server 1) Install Ubuntu Server, this is the base of our git server obviously  2) Now we need to install a couple of packages, the

Windows下基于http的git服务器搭建-gitstack

版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Windows下基于http的git服务器搭建-gitstack     本文地址:http://techieliang.com/2017/12/514/ 文章目录 1. 下载安装 2. 注意  2.1. 关于Python冲突问题  2.2. gitstack密码重置 3. gitstack与wamp冲突 1. 下载安装 官网下载即可 安装流程也很简洁方便.安装步骤 安装完成后可通过管理地址

git服务器搭建全程

原作者腾讯实验室 为了后续安装能正常进行,我们先来安装一些相关依赖库和编译工具 [[email protected]_95_113_centos ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 安装编译工具 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 下载 git 选一个目录,用来放下载