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
2
3
4
5
6
7
[root@git ~] # cd src/
[root@git src] # wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
[root@git src] # rpm -ivh epel-release-5-4.noarch.rpm
Preparing...                 ########################################### [100%]
     package epel-release-5-4.noarch is already installed
[root@git ~] # yum list
[root@git ~] # yum install -y git

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

1
[root@git ~] # 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== leo@LEO-PC

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

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

1
2
3
4
[root@git ~] # cat /home/git/.ssh/authorized_keys
ssh -rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwMU4FKB6NRc3XSoIunWsdvVVuSoncbVb5Al6lB3ciswBVd++YmJFhqwkITNGccrO5sycROs9+Fbjgd6oBSzNuaBtCIbwNNsEyM /henTl2euI3XsnJQ/ITr6c/q0P3WoGl4E2QFQ2kZqs +1eDC0CgHcBrqvFv1Jr414sVYK9lfZwIF+jDdtaBOrSJuq1Agx9pGUFUEB4tQfkXxsWm /MvOmKAVvduKDE1eenUEL9zzyeELPcSXLe3NOoTjZhkX6EEXxQR1ZiZRFywLpfM4qopZ10to2KIUyVtzw6hx6V3cg7kn40lYVW0EAMATw9dVldwcRUI +kJzJSKUTKDVSwY3/+Q== root@CHENMINGQIAN
ssh -rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsmmJuR+KhRSpdSirCiL30RA8WbfgicY1z7itWVnKHJW6hTuJFhzruY59FilVjJR1hbQBluP9JnK3XPSK9PSg+bwiJ2iQRa39rXck35r+trVOLyNbPyfKVRfOemD8YuykMlyr5JeW8gZjsHEuLnJ8 //RiCiYzd3RT/SSUQ4yawDoIIWkz3eUSL09xoCRZFBsAp +S /LD3vx2MN +FNOHwvqcE+yK3oRNIqjWwLoKE0e5TRnqNgrPQ95PJYB3XPUulzaeMwsWPZs7jIUMl /5yEqSgAkioa8SVMOsikYJG/erv99NNVgFmpCBIiWqKEGkNrIpYzLLHDSYQ4g5Gbci/RZ54Q == Administrator@WIN2003X323
ssh -rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NwUHeNNi+PC6KlrcJrXXDmKxRMmgHIPp79sgX6zqfdSlmNj7rBPQeyEKS9Wg8yI6jd8aG2jsUx99Vjti2VK2vEXKkRHxwID7ri69gE71RfDtv6ekafnzLo14J8hAp0spMk+N3wEAQRYDmcYo1wmnm /jMBedGrHj4NJQ1vYy1hVtJasGMSzjcMrlz9qvaluWnQ5tQjKFQVVwKsRRRzs8qTvzVhLJt4NQ +CAN45tqfsRuf58Uba9QNK7 /6xSUiIKXQiILz8PMGJ3MnlV +eN3wx2aeztdevxu9plggtG05SMmd8GNVzXrN1IaxXSvz0UwjQ2kygu7aCqO8AZWH49rouw== leo@LEO-PC

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

4.初始化Git仓库

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

1
2
3
4
[root@git ~] # cd /data/git/
[root@git git] # git init --bare project.git
[root@git project.git] # ls
branches  config  description  HEAD  hooks  index  info  objects  refs

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

1
2
3
4
[root@git git] # chown -R git.git project.git
[root@git 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
[root@git ~] # cat /etc/passwd | grep git
git:x:1001:1001:git version control: /home/git : /bin/bash
改为:
1
2
[root@git ~] # 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 git@git.jjhh.com:/data/git/project.git,其中git用户名,git.jjhh.com服务器,/data/git/prgject.git是仓库路径。好了,到这里服务器的搭建到这里就完成了,下面我们来安装一下客户端。


三、安装客户端

1.Windows 客户端

1).下载客户端

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

1

2

3

4

5

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

6

2.Linux 客户端

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

1
[root@ test  ~] # yum install -y git

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

1
2
[root@ test  ~] # git --version
git version 1.8.2.

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

1
2
3
4
5
6
7
8
9
10
11
12
[root@ 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 root@ test .com
[root@ test  ~] # cat .ssh/id_rsa.pub
ssh -rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwrmgNAca77BKzXl6BP11fdaclAoWfW+x4kPDZMPj1zFoML9JfOAS7DGY9quLMitwwfg5+U7zP /egPmAhSKCECubmodzMucnRSkJGgKCt1SlctRNDRN3OIvrecAtdZfDcBaWKLjaVzGPmhweLhr6HzfqeZU09Ccis4yK3RMwip2f +K1ZZVIOKUmL4AVFl9dqtxnQ4HlW61PUxvM /ug2M68Z0jQk5DVG8w5 +dvGqX1qr5YABD1NX5Jz6aUbVVx7yyoORENxu6SK83GI /V7eOkrvBMDh9nDdwvDhPhuhBDSfE +Xi92hPJPKdNroF1vx8HMvpHME20MmjSwavPrz+B18MQ== root@ test .com

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

1
2
3
4
5
6
7
[root@git ~] # 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== root@CHENMINGQIAN
ssh -rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAsmmJuR+KhRSpdSirCiL30RA8WbfgicY1z7itWVnKHJW6hTuJFhzruY59FilVjJR1hbQBluP9JnK3XPSK9PSg+bwiJ2iQRa39rXck35r+trVOLyNbPyfKVRfOemD8YuykMlyr5JeW8gZjsHEuLnJ8 //RiCiYzd3RT/SSUQ4yawDoIIWkz3eUSL09xoCRZFBsAp +S /LD3vx2MN +FNOHwvqcE+yK3oRNIqjWwLoKE0e5TRnqNgrPQ95PJYB3XPUulzaeMwsWPZs7jIUMl /5yEqSgAkioa8SVMOsikYJG/erv99NNVgFmpCBIiWqKEGkNrIpYzLLHDSYQ4g5Gbci/RZ54Q == Administrator@WIN2003X323
ssh -rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NwUHeNNi+PC6KlrcJrXXDmKxRMmgHIPp79sgX6zqfdSlmNj7rBPQeyEKS9Wg8yI6jd8aG2jsUx99Vjti2VK2vEXKkRHxwID7ri69gE71RfDtv6ekafnzLo14J8hAp0spMk+N3wEAQRYDmcYo1wmnm /jMBedGrHj4NJQ1vYy1hVtJasGMSzjcMrlz9qvaluWnQ5tQjKFQVVwKsRRRzs8qTvzVhLJt4NQ +CAN45tqfsRuf58Uba9QNK7 /6xSUiIKXQiILz8PMGJ3MnlV +eN3wx2aeztdevxu9plggtG05SMmd8GNVzXrN1IaxXSvz0UwjQ2kygu7aCqO8AZWH49rouw== leo@LEO-PC
ssh -rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwrmgNAca77BKzXl6BP11fdaclAoWfW+x4kPDZMPj1zFoML9JfOAS7DGY9quLMitwwfg5+U7zP /egPmAhSKCECubmodzMucnRSkJGgKCt1SlctRNDRN3OIvrecAtdZfDcBaWKLjaVzGPmhweLhr6HzfqeZU09Ccis4yK3RMwip2f +K1ZZVIOKUmL4AVFl9dqtxnQ4HlW61PUxvM /ug2M68Z0jQk5DVG8w5 +dvGqX1qr5YABD1NX5Jz6aUbVVx7yyoORENxu6SK83GI /V7eOkrvBMDh9nDdwvDhPhuhBDSfE +Xi92hPJPKdNroF1vx8HMvpHME20MmjSwavPrz+B18MQ== root@ test .com

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@ test  ~] # cd /data/dev
[root@ test  dev] # git clone git@git.jjhh.com:/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 .
[root@ test  dev] # ls
project
[root@ test  dev] # cd project/
[root@ test  project] # ls
index.html

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


四、总结

Q&A,有什么问题欢迎大家交流讨论。最后,希望大家有所收获^_^……















本文转自陈明乾51CTO博客,原文链接:http://blog.51cto.com/freeloda/1410562,如需转载请自行联系原作者
相关文章
|
13天前
|
网络安全 Apache
Apache服务器安装SSL证书
Apache服务器安装SSL证书
19 0
|
16天前
|
网络协议 Python
pythonTCP客户端编程连接服务器
【4月更文挑战第6天】本教程介绍了TCP客户端如何连接服务器,包括指定服务器IP和端口、发送连接请求、处理异常、进行数据传输及关闭连接。在Python中,使用`socket`模块创建Socket对象,然后通过`connect()`方法尝试连接服务器 `(server_ip, server_port)`。成功连接后,利用`send()`和`recv()`进行数据交互,记得在通信完成后调用`close()`关闭连接,确保资源释放和程序稳定性。
|
21天前
|
Ubuntu Linux 虚拟化
【Linux】ubuntu安装samba服务器
【Linux】ubuntu安装samba服务器
|
22天前
|
Linux
Linux安装bind9搭建自己的域名服务器
Linux安装bind9搭建自己的域名服务器
11 0
|
26天前
|
弹性计算 Serverless 数据库
ECS安装问题之docker安装如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
|
1月前
|
Linux 数据安全/隐私保护 Docker
linux和windows中安装emqx消息服务器
linux和windows中安装emqx消息服务器
27 0
|
1月前
|
弹性计算 网络安全 文件存储
ECS热门应用 | 安装家用内网穿透服务
使用云服务器ECS,让家庭网络可以被外部网络访问。不在家时,也可以读取备份资料。
|
1月前
|
关系型数据库 MySQL Linux
Linux服务器安装MySQL
Linux服务器安装MySQL
|
1月前
|
存储 弹性计算 Linux
阿里云ECS(CentOS镜像)安装docker
阿里云ECS(CentOS镜像)安装docker
380 0
|
1月前
|
数据可视化 网络安全 Windows
下载安装MobaXterm并链接服务器的操作方法
【2月更文挑战第13天】本文介绍在Windows电脑中,下载、配置MobaXterm软件,从而连接、操作远程服务器的方法~
下载安装MobaXterm并链接服务器的操作方法