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

参考文章:
【Git 服务器搭建与客户端安装】
【ssh配置authorized_keys后仍然需要输入密码的问题】
【Windows 7下Git SSH 创建Key的步骤 】
【如何通过TortoiseGit生成ssh文件并连接gitlab】
大纲:
一、前言
二、搭建Git服务器
1. 创建一个git用户,用来运行git服务
2. 创建客户端登录证书
3. yum安装Git服务器
4. 初始化Git仓库
5. 禁用shell登录
6. 克隆远程仓库
三、Windows客户端克隆代码
1. 安装Windows 客户端
2. 生成ssh key,然后发给管理员
3. 生成.ppk文件
4. 克隆代码到本地

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

二、搭建Git服务器
1.创建一个git用户,用来运行git服务

[root@git ~]# adduser git

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

(1)查看/home/git下面有没有.ssh文件夹和authorized_keys文件,没有就创建之。

[root@git git]# mkdir .ssh
[root@git git]# vim .ssh/authorized_keys

如果是以root用户创建的话,还要更改所有者

[root@git git]# chown -R git.git .ssh/

另外,还要注意authorized_keys文件的权限。不能让所有者之外的用户对authorized_keys文件有写权限。否则,sshd将不允许使用该文件,因为它可能会被其他用户篡改,我试过644是可以的。

[root@localhost .ssh]# ls -l
total 4
-rw-r--r--. 1 git git 390 Jul 15 20:51 authorized_keys

具体请看ssh配置authorized_keys后仍然需要输入密码的问题

(2)Linux客户端生成id_rsa.pub文件的命令。
Windows环境git客户端生成,请看Windows 7下Git SSH 创建Key的步骤

$ ssh-keygen -t rsa -C "xkwg@163.com"
$ cat  .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NwUHeNNi+6xSUiIKXQiILz8PMGJ3MnlV+eN3wx2aeztdevxu9plggtG05SMmd8GNVzXrN1IaxXSvz0UwjQ2kygu7aCqO8AZWH49rouw== xkwg@163.com

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

(3)查看服务器上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,大家可以看一下。

3.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

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 clone git@git.jjhh.com:/data/git/project.git

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

三、Windows客户端克隆代码

1.安装git 的windows客户端,同时安装tortoisegit客户端。相关教程自行百度吧

2.生成ssh key,然后发给管理员,让他添加到服务器的authorized_keys中。生成ssh key参考教程【Windows 7下Git SSH 创建Key的步骤】

3.生成.ppk文件。参考教程【如何通过TortoiseGit生成ssh文件并连接gitlab】

4.克隆代码到本地
这里写图片描述
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值