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

Linux服务器配置之Git服务器搭建

490次阅读
没有评论

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

一、配置环境

1、服务器:阿里云 CentOS 7.2(64 位)+ Git(version 1.8.3.1)
2、客户端:Windows 10 Pro(64 位)+ Git(version 2.11.0.windows.1)
3、服务器连接软件:Xshell 5


二、配置步骤

  • 1、安装 git
    Linux 作为服务器端系统,Windows 作为客户端系统,分别安装 Git
    <b> 服务器端:</b>
    [admin@ceontOS ~]$ su root                  #切换到 root 用户名
    Password:                                   #输入 root 用户的密码
    [root@ceontOS ~]# yum install -y git        #执行该命令进行 Git 安装
    

安装完后,查看 Git 版本

[root@ceontOS ~]# git --version
git version 1.8.3.1

<b> 客户端:</b>
下载 Git for Windows,地址:https://git-for-windows.github.io/
安装完之后,可以使用 Git Bash 作为命令行客户端。
安装完之后,查看 Git 版本

$ git --version
git version 2.11.0.windows.1

Git 客户端安装具体可参考:Git 安装及 SSH Key 管理之 Windows 篇

  • 2、服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码

    [root@ceontOS ~]# cd /home                                  #进入 /home/ 目录
    [root@ceontOS home]# id git                                 #查看 git 用户是否存在
    id: git: no such user                                       #提示 git 用户不存在
    [root@ceontOS home]# useradd git                            #创建 git 用户
    [root@ceontOS home]# passwd git                             #为 git 用户创建密码
    Changing password for user git.
    New password:                                               #设置密码
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password:                                        #确认密码
    passwd: all authentication tokens updated successfully.
    
  • 3、服务器端创建 Git 仓库
    设置 /home/git/repository/gittest.git 为 Git 仓库

     

[root@ceontOS home]# mkdir -p ./git/repository/gittest.git #在 git 用户目录下创建仓库目录 repositroy,并且创建 gittest.git 项目测试目录
[root@ceontOS home]# ls #查看 /home/ 目录下有哪些用户目录
admin git
[root@ceontOS home]# cd git #进入 git 用户目录
[root@ceontOS git]# ls #查看 git 用户目录下有哪些目录 / 文件
repository
[root@ceontOS git]# cd repository/ #进入 repository 仓库目录
[root@ceontOS repository]# ls #查看仓库目录下的项目目录
gittest.git
[root@ceontOS repository]# git init –bare ./gittest.git #这步很重要,初始化项目测试目录
Initialized empty Git repository in /home/git/repository/gittest.git/

然后把 Git 仓库的 owner 修改为 git

[root@ceontOS git]# ll #查看 gittest.git 项目文件夹的拥有者
total 4
drwxr-xr-x 3 root root 4096 Jan 13 13:08 repository #拥有者是 root 用户名
[root@ceontOS git]# chown -R git:git repository #将拥有者改为 git 用户
[root@ceontOS git]# ll #再次查看 gittest.git 项目文件夹的拥有者
total 4
drwxr-xr-x 3 git git 4096 Jan 13 13:08 repository #拥有者是 git 用户


* **4、客户端 clone 远程仓库 **
先在本地 Windows 系统上创建一个存放 git 项目的文件夹,例如我的设置在:【D:\gittest】此处通过 Git Bash 来创建的,当然也可以手动创建该目录,然后进入该目录,启动 Git Bash

JayYang@YJ-PC MINGW64 ~/Desktop #在桌面打开的 git bash
$ cd /d #进入 D 盘
JayYang@YJ-PC MINGW64 /d
$ mkdir gittest #创建 gittest 文件夹
JayYang@YJ-PC MINGW64 /d
$ cd gittest/ #进入 gittest 文件夹
JayYang@YJ-PC MINGW64 /d/gittest #显示当前在 D:\gittest 路径下
$ git clone git@服务器公网 IP 地址:/home/git/repository/gittest.git #IP 地址后面跟冒号,冒号后面是刚才初始化的项目文件夹的绝对路径

![](http://upload-images.jianshu.io/upload_images/2267589-7bedba534bdc9f04.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

当第一次连接到目标 Git 服务器时会得到一个提示:

The authenticity of host ‘118.178.142.77 (118.178.142.77)’ can’t be established.
ECDSA key fingerprint is SHA256:JwC9NxLIjBGqtLC2NUk8MulSc3XH3mM5AWMcFz0a5/8.
Are you sure you want to continue connecting (yes/no)? yes

选择 yes:

Warning: Permanently added ‘118.178.142.77’ (ECDSA) to the list of known hosts.

此时 C:\Users\ 用户名 \.ssh 下会多出一个文件 known_hosts,以后在这台电脑上再次连接目标 Git 服务器时不会再提示上面的语句。【说明】如果你的服务器没有配置 SSH 连接,那么按照正常情况会让你输入 git 用户的密码,输入正确后就能进行项目克隆了。![](http://upload-images.jianshu.io/upload_images/2267589-776f44a088bba653.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

如果不采用 SSH 公钥来进行验证,则每次都要输入密码,很麻烦,下面就来配置 SSH 公钥验证的方式来 clone 项目

* **5、客户端创建 SSH 公钥和私钥 **

ssh-keygen -t rsa -C “695834706@qq.com”

此处我是管理了多个 ssh_key,所以这边给公私钥起了个名字:id_rsa_git,生成后需要进行 **ssh-add** 操作,如何管理多个 ssh_key 可以参考:[Git 安装及 SSH Key 管理之 Windows 篇](http://www.jianshu.com/p/a3b4f61d4747)
![](http://upload-images.jianshu.io/upload_images/2267589-f781abf1bff6be8f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

此时 C:\Users\ 用户名 \.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub
id_rsa_git 是私钥
id_rsa_git.pub 是公钥
![](http://upload-images.jianshu.io/upload_images/2267589-a5b6810e27a15c93.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

* **6、服务器端修改配置文件,打开 RSA 认证 **
进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:

[root@ceontOS ~]# sudo vi /etc/ssh/sshd_config #root 用户下,编辑 /etc/ssh/sshd_config 文件

按如下设置这三个配置,如果注释掉了,则去掉前面的 #号

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

保存并重启 sshd 服务:

sudo service sshd restart #重启 sshd 服务

由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys
在 /home/git/ 下创建目录 .ssh

[root@ceontOS ~]# cd /home/git
[root@ceontOS git]# pwd
/home/git
[root@ceontOS git]# mkdir .ssh
[root@ceontOS git]# ls -a
. .. .bash_logout .bash_profile .bashrc repository .ssh

然后把 .ssh 文件夹的 owner 修改为 git

[root@ceontOS git]# chown -R git:git .ssh
[root@ceontOS git]# ll -a | grep .ssh
drwxr-xr-x 2 git git 4096 Jan 13 14:54 .ssh

* **7、将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件 **
回到客户端 Git Bash 下,导入文件:

$ ssh git@服务器公网 IP 地址 ‘cat >> .ssh/authorized_keys’ < ~/.ssh/id_rsa_git.pub

![](http://upload-images.jianshu.io/upload_images/2267589-c0e6f9dc9b76225f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
回到服务器端,查看 .ssh 下是否存在 authorized_keys 文件:

[root@ceontOS ~]# cd /home/git/.ssh/
[root@ceontOS .ssh]# ll
total 4
-rw-rw-r– 1 git git 398 Jan 13 15:03 authorized_keys
[root@ceontOS .ssh]# cat authorized_keys #查看客户端生成的公钥

** 重要:**
** 修改 .ssh 目录的权限为 700**
** 修改 .ssh/authorized_keys 文件的权限为 600**

[root@ceontOS git]# chmod 700 .ssh
[root@ceontOS git]# cd .ssh/
[root@ceontOS .ssh]# chmod 600 authorized_keys

* **8、客户端再次 clone 远程仓库 **

git clone git@118.178.142.77:/home/git/repository/gittest.git

![](http://upload-images.jianshu.io/upload_images/2267589-909ce2867f46f28c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

* **9、禁止 git 用户 ssh 登录服务器 **
之前在服务器端创建的 git 用户不允许 ssh 登录服务器
编辑 /etc/passwd

[admin@ceontOS ~]$ su root #切换到 root 用户
Password:
[root@ceontOS admin]# sudo vi /etc/passwd #编辑 /etc/passwd 文件

找到:

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

修改为:

git:x:1001:1001::/home/git:/bin/git-shell

此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统。

更多Git 教程系列文章 

Git 常用命令整理  http://www.linuxidc.com/Linux/2017-12/149316.htm

GitHub 使用教程图文详解  http://www.linuxidc.com/Linux/2014-09/106230.htm 

Git 使用图文详细教程  http://www.linuxidc.com/Linux/2016-11/136781.htm

Ubuntu Git 安装与使用 http://www.linuxidc.com/Linux/2016-11/136769.htm

分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm 

Git 从入门到学会 http://www.linuxidc.com/Linux/2016-10/135872.htm

Git 基本操作详解 http://www.linuxidc.com/Linux/2016-10/135691.htm

Git 部署与常用基本命令详解   http://www.linuxidc.com/Linux/2017-06/144961.htm

分布式版本控制系统 Git 详细教程  http://www.linuxidc.com/Linux/2017-05/143747.htm

Git 命令和配置技巧  http://www.linuxidc.com/Linux/2017-11/148423.htm

Git 的详细介绍:请点这里
Git 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149803.htm

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

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7990030
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...