利用阿里云搭建私有Git服务器

简介: 服务器系统:Centos 6 (查看centos版本命令:lsb_release -a) 客户端系统:Windows 7 一、服务器端安装Git ==通常centos上使用yum源安装的git版本过低==   1.

服务器系统:Centos 6 (查看centos版本命令:lsb_release -a

客户端系统:Windows 7

一、服务器端安装Git

==通常centos上使用yum源安装的git版本过低==

 

1. 检查系统上是否已经安装git,若已有则卸载

// 查看当前git版本
# git --version
git version 1.7.1

// 卸载旧版本
# yum remove -y git

 

2. 安装依赖包,下载最新版本git源码

# yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
# wget https://github.com/git/git/archive/v2.13.2.tar.gz
# tar zxf v2.13.2.tar.gz

 

3. 安装git,配置环境变量

# cd git-2.13.2
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install
# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
# source /etc/bashrc    // 实时生效 

 

4. 查看git版本号,正确显示则安装成功

# git --version
git version 2.13.2

 

5. 若编译时报错如下

libgit.a(utf8.o): In function `reencode_string_iconv:
/usr/local/src/git-2.13.2/utf8.c:463: undefined reference to `libiconvlibgit.a(utf8.o): In function `reencode_string_len:
/usr/local/src/git-2.13.2/utf8.c:524: undefined reference to `libiconv_open/usr/local/src/git-2.13.2/utf8.c:535: undefined reference to `libiconv_close/usr/local/src/git-2.13.2/utf8.c:529: undefined reference to `libiconv_opencollect2: ld returned 1 exit status
make: *** [git-credential-store] Error 1 

可以按照如下方式解决

// 对之前git的make 操作进行 make clean
# make clean
# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
# tar zxf libiconv-1.14.tar.gz
# cd libiconv-1.14
# ./configure --prefix=/usr/local/libiconv
# make && make install
// 创建一个软链接到/usr/lib
# ln -s /usr/local/lib/libiconv.so /usr/lib
# ln -s /usr/local/lib/libiconv.so.2 /usr/lib

然后

# make configure
# ./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv/
# make && make install
# echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
# source /etc/bashrc

 

6. 配置git 用户名及邮箱(客户机安装后也要配置,在这里略过windows的git安装过程)

# git config --global user.name your name
# git config --global user.email your email address

 

二、服务器设置

1、添加一个git用户,为安全起见禁用shell登录

# useradd git

 

2、初始化一个项目目录为一个仓库

su git
//git的~的实际地址为/home/git
cd ~
//yourName为自定义的仓库名称
mkdir yourName.git
cd yourName.git
git init --bare

 至此,我们的仓库完整地址为/home/git/yourName.git

【问题】:建立远程仓库使用 git init 命令,也可以增加 --bare 参数。写不写 --bare 参数有什么区别呢?

【答案】:

  我们知道,一般从远程 clone 下来的仓库会生成一个独立的目录,在这个目录下有当前分支最新版本的文件,同时还有一个 .git 文件夹,与 .git 同级的文件夹称为我们的“工作目录”,我们的修改都在这个目录中进行。而 .git 就是我们 Git 本地仓库的工作目录,我们 add 和 commit 的东西都会被提交到这个目录中。对 git init 命令添加 --bare 参数就表示初始化 Git 仓库的时候不要创建本地工作目录,所以相当于 .git 文件夹下的所有内容直接创建到当前目录下,而不是被放到 .git 目录下。在 Git 服务器上建立好仓库以后,用户就可以克隆这个仓库了。等等。。还没配置用户 SSH 公钥呢,这么就让用户去下载,肯定还是要输入密码才行的。

 

3、在 Git 服务器上为用户配置 SSH 公钥

 还是先在 Git 服务器上使用 authorized_keys 文件来管理所有用户的 SSH 公钥。(密钥登录的方式比密码登录更安全、更便捷,注意保管好自己的私钥,下面会讲到如何生成秘钥对)

git@Linux:~$ mkdir .ssh
git@Linux:~$ touch .ssh/authorized_keys
git@Linux:~$ chmod 600 .ssh/authorized_keys 
git@Linux:~$

注意:这里的authorized_keys跟配置好的centos的证书方式ssh登录不同(如已配置),我们git的证书文件路径为/home/git/.ssh/authorized_keys(ssh终端登录所用证书文件路径为/etc/ssh/authorized_keys,一般使用xshell或者putty等工具用的证书登录ssh所用的pub密钥信息都在里面)

 

4、打开服务器的RSA认证

# vim /etc/ssh/sshd_config
// 找到下面3行并去掉注释
 1. RSAAuthentication yes     
 2. PubkeyAuthentication yes     
 3. AuthorizedKeysFile  .ssh/authorized_keys

 重启sshd

service sshd restart

 

5、为安全起见禁用git用户shell登录

// 为安全起见,禁用 git 用户的 shell 登录
# vim /etc/passwd
// 修改 git 用户的 shell 为 git-shell,路径使用 which git-shell 查看
// 找到如下一行
git:x:1001:1001::/home/git:/bin/bash
// 修改成如下
git:x:1001:1001::/home/git:/usr/local/git/bin/git-shell

 重启sshd服务

service sshd restart

 版权声明:本文由 数控等离子切割机http://www.hycsk.com 整理编辑!本文章来源于网络,如有侵权,请联系云栖社区,欢迎分享本文,转载请保留出处!

三、客户端开始使用

1、打开git bash

2、生成秘钥对

  2.1 客户机执行以下命令将在windows的“用户目录/.ssh”下得到秘钥对

cd ~/.ssh
ssh-keygen -t rsa -C “youremail@example.com” 

 

  2.2上传公共秘钥到git服务器有以下2种方式:

  ①复制到git服务器的/home/git/.ssh/authorized_keys文件末尾中;

  ②通过ftp等方式上传后,执行以下命令:

cat 源秘钥文件路径 >> /home/git/.ssh/authorized_keys


2、任意新建一个工作区文件夹

3、执行clone命令(输入自己的IP地址,端口默认为22,如有不同就加上去)

git clone git@ip:/home/git/yominhi.git

4、随便新建个文件

5、提交

cd 项目文件下下
git add .
git commit -m "本次提交的备注"
git push

 

6、服务器端验证是否上传成功

cd /home/git/yourName.git/branches
git log

成功信息:

commit 087966c9f3f73f4aee153213213212132132ac191a7 (HEAD -> master)
Author: upLoadUserName <yourEmailAddress>
Date:   Tue Oct 9 08:59:21 2018 +0800
相关文章
|
2天前
|
存储 机器学习/深度学习 人工智能
2025年阿里云GPU服务器租用价格、选型策略与应用场景详解
随着AI与高性能计算需求的增长,阿里云提供了多种GPU实例,如NVIDIA V100、A10、T4等,适配不同场景。2025年重点实例中,V100实例GN6v单月3830元起,适合大规模训练;A10实例GN7i单月3213.99元起,适用于混合负载。计费模式有按量付费和包年包月,后者成本更低。针对AI训练、图形渲染及轻量级推理等场景,推荐不同配置以优化成本和性能。阿里云还提供抢占式实例、ESSD云盘等资源优化策略,支持eRDMA网络加速和倚天ARM架构,助力企业在2025年实现智能计算的效率与成本最优平衡。 (该简介为原文内容的高度概括,符合要求的字符限制。)
|
4天前
|
存储 弹性计算 人工智能
2025年阿里云企业云服务器ECS选购与配置全攻略
本文介绍了阿里云服务器的核心配置选择方法论,涵盖算力需求分析、网络与存储设计、地域部署策略三大维度。针对不同业务场景,如初创企业官网和AI模型训练平台,提供了具体配置方案。同时,详细讲解了购买操作指南及长期运维优化建议,帮助用户快速实现业务上云并确保高效运行。访问阿里云官方资源聚合平台可获取更多最新产品动态和技术支持。
|
6天前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。
|
2天前
|
存储 人工智能 弹性计算
2025年阿里云企业高性能云服务器租用价格与选型详解
随着企业数字化转型,阿里云于2025年推出多款高性能云服务器实例,涵盖计算、通用和内存密集型场景。文章分析了企业选择云服务器的核心要点,包括明确业务需求(如计算密集型任务推荐计算型实例)、性能与架构升级(如第八代实例性能提升20%),以及第九代实例支持AI等高算力需求。同时提供了配置价格参考和成本优化策略,助力企业实现效率与成本的最优平衡。
|
2天前
|
机器学习/深度学习 存储 人工智能
2025年阿里云GPU服务器的租赁价格与选型指南
随着AI、深度学习等领域的发展,GPU服务器成为企业及科研机构的核心算力选择。阿里云提供多种GPU实例类型(如NVIDIA V100、A100等),涵盖计算型、共享型和弹性裸金属等,满足不同场景需求。本文详解2025年阿里云GPU服务器的核心配置、价格策略及适用场景,帮助用户优化选型与成本控制,实现高效智能计算。
|
1天前
|
机器学习/深度学习 人工智能 程序员
阿里云出手DeepSeek拒绝服务器繁忙,程序员直呼:真香!
阿里云PAI平台支持一键部署DeepSeek-V3和DeepSeek-R1大模型,用户无需编写代码即可完成从训练到部署的全过程。通过PAI Model Gallery,开发者可轻松选择并部署所需模型版本,享受高效、便捷的AI开发体验。教程详细介绍了开通PAI、选择模型及一键部署的具体步骤,帮助用户快速上手。
|
2天前
|
机器学习/深度学习 存储 弹性计算
阿里云gpu云服务器租用价格:最新收费标准及活动价格参考
阿里云gpu云服务器多少钱?A10卡GN7i GPU云服务器32核188G3213.99/1个月起,V100卡GN6v GPU云服务器8核32G3830.00/1个月起,阿里云GPU云服务器是基于GPU应用的计算服务,多适用于视频解码,图形渲染,深度学习,科学计算等应用场景,该产品具有超强计算能力、网络性能出色、购买方式灵活、高性能实例存储( GA1和GN5特有)等特点。下面小编来介绍下阿里云gpu云服务器最新的收费标准及活动价格。
|
5天前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
|
5天前
|
机器学习/深度学习 人工智能 开发者
DeepSeek服务器繁忙?拒绝稍后再试!基于阿里云PAI实现0代码一键部署DeepSeek-V3和DeepSeek-R1大模型
阿里云PAI平台支持零代码一键部署DeepSeek-V3和DeepSeek-R1大模型,用户可轻松实现从训练到部署再到推理的全流程。通过PAI Model Gallery,开发者只需简单几步即可完成模型部署,享受高效便捷的AI开发体验。具体步骤包括开通PAI服务、进入控制台选择模型、一键部署并获取调用信息。整个过程无需编写代码,极大简化了模型应用的门槛。
117 7
|
6天前
|
弹性计算 运维 网络安全
阿里云轻量应用服务器产品解析与搭建个人博客网站教程参考
轻量应用服务器(Simple Application Server)作为阿里云面向单机应用场景推出的云服务器产品,以其一键部署、一站式管理、高性价比等特性,深受个人开发者、中小企业及入门级用户的喜爱。本文将全面解析阿里云轻量应用服务器的产品优势、应用场景、使用须知,以及使用轻量应用服务器搭建个人博客网站的详细教程,帮助用户更好地了解和使用这一产品。