热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Git服务器搭建与使用

Git服务器搭建与使用前言Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。官网请戳www.git-scm.com。常用的有几家

Git服务器搭建与使用

前言

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。官网请戳www.git-scm.com。 常用的有几家Git服务提供商

  • GitHub,全球最大的代(tong)码(xing)托(jiao)管(you)平台,社区文化好,大牛多,公有库免费,私有库收费
  • Gitee,OSChina家的产品,现在国内挺多人用的,公有库、私有库都免费
  • Coding,公有库、私有库都免费,提供企业版(收费)服务,除了提供代码托管服务,还能发布任务,有点像是Gitee和Tower的结合体

环境准备

  • 服务器,使用阿里云,操作系统,CentOS 7
  • 客户端,安装Git Client,参考官网的安装指引

1 安装Git

yum install git

2 配置用户

创建一个用户git,该用户只是用来进行git相关操作

groupadd git
useradd git -d /home/git -g git

3 Git-协议

Git 可以使用四种协议来传输数据:本地协议(Local)、HTTP协议、SSH(Secure Shell)协议、Git 协议。各种协议的优劣详见这里

3.1 SSH协议

查看公钥鉴权文件是否存在

cat /home/git/.ssh/authorized_keys

如果不存在的话,新建一个

cd /home/git/
mkdir .ssh
chmod 755 .ssh
touch .ssh/authorized_keys
chmod 644 .ssh/authorized_keys

3.2 生成并配置密钥对

生成一个密钥对

ssh-keygen -t rsa -C "fallshum"

这里会提示我们,是否修改路径,是否输入密码,使用默认,一路Enter往下走就行

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
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:
1d:f1:b6:c9:42:2b:ab:1d:43:5a:72:fc:31:aa:38:9d fallshum
The key's randomart image is:
+--[ RSA 2048]----+
| . |
| o |
| o o |
| . o = o |
| . S * + |
| * = + |
| ...= . |
| ..E+ o |
| ..o . |
+-----------------+

把生成的公钥写入/home/git/.ssh/authorized_keys,并查看

cat /root/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys
cat /home/git/.ssh/authorized_keys

把私钥放到客户端的.ssh目录下,先获取刚才生成的私钥

cat /root/.ssh/id_rsa

可以看到类似这样的一个私钥,复制出来

-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAxtF2MFhb0xbOn2ngtHvWJTM1bW4V/IIBTKzCzTUg9S6tfTqZ
bzVS0qouNWJEOF+phW42Ban5bE9YrpqD3wG36w1fKntGVGXeGkdjiByxzW4wtZpv
gzn9d0o03JlpY3nciwqePfvkykaXDP8Kzg+JolMpxzuc3t4JEMa4nphC1sGrfWeS
IVIY6JxDqhemEkKIfncH44OLg9VslJgx0bL5hKQlkaiAkkI+qfX1XDzISmz6xnif
pzxz9Zwu9/j9GBgBxuD3T5AhnVj5gqjEt7Y4n/V6b/b78KAY9CJDy/nP+oXc4xmF
tdenMH6ZThOdmzwfaQGC4NSJXRK+9Rk8/8JSnQIDAQABAoIBADPERinAV+hWf+Yy
Azf7Jn75HmgnycG9d+km8nHL65DrXnDE2T6De9UuSmnL9EdZYSJE1/wRjcgNwOF1
ifB+2gxxpt3Ay0ceXv4oqFnAXutGTZh7ZZ2dc8mjoK/voeksyafKU/l/pMqmJp5T
qdSNZyDE1pPxiZ7d4S5lD5z7uCuCPELG8ZwGVjFY2xtcaIqfy0kPr5SDmkLDrktI
6Mxo2YFlae8tqvgud9LKZt9R5ubxyftgHf80bVJXVOvKNhN5UYNWssJ6FBt23jjb
pAK6oASATYyITC4a5leqR7vWW3m/wvYiHslouS0vmaxhdOdb4JUafLevmHtYlBZ3
8aGhM2ECgYEA6JQKDijObACWU6DCDKdadq2l0l3RSHOvncStIex/kM9vOgXHZ88d
DNEJB7l639t+Kv956uDr6WY7se7b5H+UVR4Wf8iTe9uexsJLiA/+LMBWEiY/qmE1
3lk4vHwYPWynmEyu/+ZtlNgQzHn0npvktgPCV1Hr/PcXzuxkvnbS+MMCgYEA2tcT
Cb9EJvhcKg/xUzidFtf5SSRu8yezxi+0gydOccuqm8j5jF9jXUZ4IASPpZH3zJRQ
x0SJuOfhhQevuyLI+HD6n3nVEAKc42xSuOYmLrErrbTOHIkwErhtcC05b79EdAbM
JObyA51O2jYCaY/VEny5cSLyYzATbhFn67p10R8CgYAtOdxatISva83PpUsWutRU
j5/XMHcp55UW0M/58Ms9lZjDZ6xG+3dirqNa5S6HqV73bYZ/rg0x7bdd+ly4Kjbl
9lvZrV9Ajoxpig61/qYmfaA/F0D6GL0o56CoxljQWPieHQtKp7xXXUym9nAjB52J
52E7KasCHep7SmysvN55kQKBgELCpAswL0FYOP2X+X3y4nFql6EJnVNOhFhsizwL
jLHIeRanXAHHw89bxR+3ZH8VJaxifrYboYwoKTNlIeYL+ZVZGgv2pdoJggUbMa04
gONzpyiJ5Ortqx2655/2G/SMO/zNag/D6IbTwY9uNJQxjcXjCMuL5rf9nZ/RbYuL
SY/vAoGAGkb/uKGnAhQc+ihcZaZAdZytOTFfEs5692J1rBAhisx1gDCEdkgOp1kH
2mHBwOexAvegb7MUzoRTw5cNYfYCmhkgQg+qOdLDSLvaFGSMNtkdftMif9E88oJ4
9mIblJfi2+GzpBee/I3RP+gxbLa+a83iw7TwQGLjssnjJ2QOsu4=
-----END RSA PRIVATE KEY-----

如果是在windows下,进入C:\Users\myname\.ssh,路径里面的myname是windows登录用户名,然后创建一个文本文档,把私钥复制进去,再把文件名改为id_rsa,不要.txt的后缀

4 初始化Git仓库

初始化一个仓库,将仓库的owner改为刚才创建的用户git,这样用户git就能操作这个仓库了

cd /home/git/
git init --bare fallshum.git
chown -R git:git fallshum.git/

5 客户端克隆仓库

客户端打开Git Bash,clone服务端仓库

git clone git@192.168.1.1:/home/git/fallshum.git

只要看到Checking connectivity... done就说明OK了

6 禁用shell登录

如果有需要禁用shell登录的话,执行

usermod -s /sbin/nologin git

禁用之后,可能出现错误提示fatal: protocol error: bad line length character: This 原因及解决办法参考这里 重新开启,执行

usermod -s /bin/bash git

7 多key管理

ssh在客户端连接服务端的时候,默认使用~/.ssh/id_rsa私钥文件。当我们需要连接多个服务端的时候,需要进行多key配置。首先,通过上面步骤3.2操作,生成了两个密钥对,分别将两个公钥放到对应服务器~/.ssh/authorized_keys里面。将私钥文件放到客户端~/.ssh/目录下,给两个不同的命名,比如aliyun_rsa、tengxunyun_rsa, 在.ssh目录下新建config文件,配置如下

# 配置文件参数
# Host 一个自定义名称,比如叫做aliyun,那么clone仓库的时候,就要用git clone git@aliyun:/home/git/fallshum.git
# HostName 实际要连接的主机地址
# PreferredAuthentications 配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-interactive等
# IdentityFile 指明要使用的identityFile路径,也就是私钥的地址
# User 用户名# aliyun
Host aliyun
HostName 192.168.1.1
PreferredAuthentications publickey
IdentityFile ~/.ssh/aliyun_rsa
User fallshum# tengxunyun
Host tengxunyun
HostName 192.168.1.1
PreferredAuthentications publickey
IdentityFile ~/.ssh/tengxunyun_rsa
User fallshum

配置完成之后,可以在客户端用如下指令检验ssh是否配置成功

ssh git@aliyun

登录成功

exit退出

成功连接上,我们再分别尝试一下clone

git clone git@aliyun:/home/git/aliyun.git
git clone git@tengxunyun:/home/git/tengxunyun.git

都成功了

8 推荐链接

  • Git使用简易指南
  • 图解Git


本作品由fallshum采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。



推荐阅读
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
  • RabbitMQ的消息持久化处理
    1、RabbitMQ的消息持久化处理,消息的可靠性是RabbitMQ的一大特色,那么RabbitMQ是如何保证消息可靠性的呢——消息持久化。2、auto ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 消息中间件RabbitMQ 高级特性之消费端ACK与重回队列
    什么是消费端的ACK和重回队列?消费端的手工ACK和NACK消费端进行消费的时候,如果由于业务异常我们可以进行日志的记录,然后进行补偿如果由于服务器宕机等严重问题 ... [详细]
  • 导航:网站首页谁有大一C语言考试题?快考试了,跪求题库有谁会做C语言的题目谁有大一C语言考试题?快考试了,跪 ... [详细]
author-avatar
不能深加工
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有