Git服务器搭建与使用

Git服务器搭建与使用

Git服务器搭建与使用1.png

前言

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。官网请戳https://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

<a id="3.2">3.2 生成并配置密钥对</a>

生成一个密钥对

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

登录成功


Git服务器搭建与使用2.png

exit退出

Git服务器搭建与使用3.png

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

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

都成功了


Git服务器搭建与使用4.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342