利用阿里云搭建私有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天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
9天前
|
存储 弹性计算 运维
阿里云日常运维-购买服务器
这篇文章是关于如何在阿里云购买和配置云服务器ECS的教程。
39 6
阿里云日常运维-购买服务器
|
10天前
|
Linux 开发工具 数据安全/隐私保护
搭建 Git 私人服务器完整指南
本文详细介绍了如何从零开始搭建一个私人的 `Git` 服务器。首先,文章解释了 `Git` 的概念及其优势,并阐述了搭建私人 `Git` 服务器的重要性,包括数据隐私、定制化需求及成本效益。接着,文章分步骤指导读者完成服务器的准备工作,包括操作系统、硬件和网络要求。随后,详细介绍了在不同操作系统上安装 `Git` 的方法,并演示了如何创建 `git` 用户、部署仓库以及设置免密登录。此外,还提供了客户端连接远程仓库的具体步骤,包括 Linux 和 Windows 的操作方式。最后,文章探讨了迁移仓库的方法以及搭建 `Git` 服务器的一些进阶选项。
45 0
搭建 Git 私人服务器完整指南
|
3天前
|
网络安全 开发工具 云计算
服务器看代码阿里云
随着云计算技术的发展,阿里云作为国内领先的云计算服务提供商,其服务器受到广大用户青睐。本文主要介绍如何在阿里云服务器上便捷地查看与管理代码,如使用SSH连接服务器并通过命令行工具打开文件,以及利用Git进行版本控制和协作开发,提高代码管理效率。无论个人开发者还是企业团队,都能借助阿里云服务器高效地部署与管理应用程序,提升工作效率及产品质量。
28 10
|
17天前
|
弹性计算 负载均衡 数据库
阿里云轻量应用服务器全面解析:收费标准、产品优势及适用场景
在云计算领域,阿里云凭借其强大的技术实力和丰富的产品线,为用户提供了一系列高效、便捷的云服务器产品。其中,轻量应用服务器(Simple Application Server)作为面向个人开发者、中小企业等用户的入门级云产品,凭借其易用性、高性价比以及一站式服务体验,受到了广泛的欢迎。本文将全面解析阿里云轻量应用服务器的收费标准、产品优势以及适用场景,帮助用户更好地了解和选择这一产品。
阿里云轻量应用服务器全面解析:收费标准、产品优势及适用场景
|
7天前
|
人工智能 运维 Cloud Native
专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来
AI智算时代,服务器操作系统面临的挑战与机遇有哪些?
|
9天前
|
弹性计算 安全 测试技术
阿里云的ECS云服务器应用例
在未来的远程办公时代,“未来空间”打造了一个高效、灵活且安全的在线协作平台,采用阿里云ECS云服务器作为核心基础设施。ECS提供按需付费的弹性计算能力,确保平台响应迅速并能应对流量高峰。其集成的安全特性如安全组和云盾,构建了多层次防护体系,保障数据安全。此外,ECS与阿里云其他服务无缝集成,如RDS、CDN和OSS,实现了高效的数据管理和全球低延迟访问。结合阿里云的机器学习服务,“未来空间”开发了智能会议摘要和情绪分析功能,提升了用户体验。凭借ECS的强大支持,该平台不仅实现了全球团队的高效协作,还赢得了市场的广泛认可,成为远程办公领域的标杆。
|
9天前
|
弹性计算 开发框架 数据可视化
阿里云虚拟主机和云服务器有什么区别?多角度全解析对比
阿里云虚拟主机与云服务器ECS的主要区别在于权限与灵活性。虚拟主机简化了网站搭建流程,预装常用环境,适合初级用户快速建站;而云服务器提供全面控制权,支持多样化的应用场景,如APP后端、大数据处理等,更适合具备技术能力的用户。尽管虚拟主机在价格上通常更优惠,但随着云服务器价格的下降,其性价比已超越虚拟主机,成为更具吸引力的选择。
|
20天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云AI服务器价格表_GPU服务器租赁费用_AI人工智能高性能计算推理
阿里云AI服务器提供多样化的选择,包括CPU+GPU、CPU+FPGA等多种配置,适用于人工智能、机器学习和深度学习等计算密集型任务。其中,GPU服务器整合高性能CPU平台,单实例可实现最高5PFLOPS的混合精度计算能力。根据不同GPU类型(如NVIDIA A10、V100、T4等)和应用场景(如AI训练、推理、科学计算等),价格从数百到数千元不等。详情及更多实例规格可见阿里云官方页面。
|
网络安全 开发工具 git