阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

114次阅读
没有评论

共计 11589 个字符,预计需要花费 29 分钟才能阅读完成。

大纲:

一、前言

二、搭建 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/。

Fedora 通过 Http Proxy 下载 Git http://www.linuxidc.com/Linux/2009-12/23170.htm

在 Ubuntu Server 上安装 Git http://www.linuxidc.com/Linux/2009-06/20421.htm

服务器端 Git 仓库的创建(Ubuntu)http://www.linuxidc.com/Linux/2011-02/32542.htm

Linux 下 Git 简单使用教程(以 Android 为例)http://www.linuxidc.com/Linux/2010-11/29883.htm

Git 权威指南 PDF 高清中文版 http://www.linuxidc.com/Linux/2013-10/91053.htm

一、前言

在上一篇文章中我们主要讲解 Git 是什么(http://www.linuxidc.com/Linux/2014-05/101829.htm),Git 的基本原理,讲解一些有关 Git 的基础知识,让我们简单的了解一下 Git,当然我们还有很多问题没有搞清楚,嘿嘿!不管理怎么样,在我们弄清楚这些问题之前,我们得有台 Git 服务器是吧,嘿嘿!好了,下面我们就来一起搭建一台 Git 服务器。

二、搭建 Git 服务器

1.yum 安装 Git 服务器

[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 服务

[root@git ~]# adduser git

3. 创建客户端登录证书

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

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

$ 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 文件

[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。

[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:

[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 文件完成。找到类似下面的一行:

[root@git ~]# cat /etc/passwd | grep git

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

改为:

[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 服务器搭建与客户端安装

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

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-05/101830p2.htm

三、安装客户端

1.Windows 客户端

1). 下载客户端

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

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

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

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

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

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

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

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

2.Linux 客户端

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

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

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

[root@test ~]# git –version

git version 1.8.2.

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

[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 文件中。

[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 一个仓库到本地的目录中。

[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,有什么问题欢迎大家交流讨论。最后,希望大家有所收获 ^_^……

Git 的详细介绍 :请点这里
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/。

Fedora 通过 Http Proxy 下载 Git http://www.linuxidc.com/Linux/2009-12/23170.htm

在 Ubuntu Server 上安装 Git http://www.linuxidc.com/Linux/2009-06/20421.htm

服务器端 Git 仓库的创建(Ubuntu)http://www.linuxidc.com/Linux/2011-02/32542.htm

Linux 下 Git 简单使用教程(以 Android 为例)http://www.linuxidc.com/Linux/2010-11/29883.htm

Git 权威指南 PDF 高清中文版 http://www.linuxidc.com/Linux/2013-10/91053.htm

一、前言

在上一篇文章中我们主要讲解 Git 是什么(http://www.linuxidc.com/Linux/2014-05/101829.htm),Git 的基本原理,讲解一些有关 Git 的基础知识,让我们简单的了解一下 Git,当然我们还有很多问题没有搞清楚,嘿嘿!不管理怎么样,在我们弄清楚这些问题之前,我们得有台 Git 服务器是吧,嘿嘿!好了,下面我们就来一起搭建一台 Git 服务器。

二、搭建 Git 服务器

1.yum 安装 Git 服务器

[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 服务

[root@git ~]# adduser git

3. 创建客户端登录证书

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

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

$ 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 文件

[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。

[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:

[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 文件完成。找到类似下面的一行:

[root@git ~]# cat /etc/passwd | grep git

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

改为:

[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 服务器搭建与客户端安装

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

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2014-05/101830p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计11589字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中