搭建Git服务器

1.准备环境

搭建Git服务器需要一台准备了Linux系统的机器(虚拟机阿里云服务器等等)
强烈推荐使用Ubuntu,CentOS

在root(管理员用户)的环境下,正式开始安装:
:以下都是在root账户下进行

1. 安装git

`yum install git`
安装完成之后可以使用 `git`查看
[root@admin ShellTest]# git
usage: git [--version] [--help] [-c name=value]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]

最常用的 git 命令有:
   add        添加文件内容至索引
   bisect     通过二分查找定位引入 bug 的变更
   branch     列出、创建或删除分支
   checkout   检出一个分支或路径到工作区
   clone      克隆一个版本库到一个新目录
   commit     记录变更到版本库
   diff       显示提交之间、提交和工作区之间等的差异
   fetch      从另外一个版本库下载对象和引用
   grep       输出和模式匹配的行
   init       创建一个空的 Git 版本库或重新初始化一个已存在的版本库
   log        显示提交日志
   merge      合并两个或更多开发历史
   mv         移动或重命名一个文件、目录或符号链接
   pull       获取并合并另外的版本库或一个本地分支
   push       更新远程引用和相关的对象
   rebase     本地提交转移至更新后的上游分支中
   reset      重置当前HEAD到指定状态
   rm         从工作区和索引中删除文件
   show       显示各种类型的对象
   status     显示工作区状态
   tag        创建、列出、删除或校验一个GPG签名的 tag 对象

命令 'git help -a''git help -g' 显示可用的子命令和一些指南。参见
'git help <命令>''git help <指南>' 来查看给定的子命令帮助或指南。

2. 创建一个git用户(也可以自己取名)

adduser git

使用adduser时,创建用户的过程更像是一种人机对话,系统会提示你输入各种信息
使用useradd,你可以添加各种参数

3. 创建证书登录:

切换到git的家目录

[root@bogon /]# cd ~git
[root@bogon git]# 

在刚刚创建的git家目录home
mkdir .ssh

[root@bogon git]# mkdir .ssh
[root@bogon git]# ll -al
总用量 12
drwx------. 4 git  git   90 730 10:54 .
drwxr-xr-x. 7 root root  77 730 10:42 ..
-rw-r--r--. 1 git  git   18 41 2020 .bash_logout
-rw-r--r--. 1 git  git  193 41 2020 .bash_profile
-rw-r--r--. 1 git  git  231 41 2020 .bashrc
drwxr-xr-x. 4 git  git   39 721 10:17 .mozilla
drwx------. 2 git  git   29 730 10:49 .ssh

进入新创建的.ssh目录后创建authorized_keys文件
authorized_keys文件主要存放用户的公钥

收集所有需要登录的用户的公钥,就是id_rsa.pub文件(/用户家目录/.ssh/id_rsa.pub)
把所有公钥导入到/home/git/.ssh/authorized_keys文件里

查看用户公钥

[root@admin /]# cd ~ root
[root@admin ~]# cd .ssh
[root@admin .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDr33+shQDZTW1xLfiIEDfiNfV4kUI6FaEpU7Gut3Hb2HgnCrn0hiowq86mMsn32yU67neyTq04leIYHpjSwHZ3fKBGMLUiY3QfF5I3N1aWSbdbjv9ZXdJpCypEC1KB/JoGvHgPvl9dvKIrPBWWaAeZVFHIivXyehmjZzv2gkMLZnSpc0CWPXJajq34sgB8ejt9G0dCM4S8sQbqVqkNRrZUNP8kflDHxD6SjVaMF7uuzh3mDJakrpnmE0yfsK6/SHiySnTRSXwyGkYuQqQghtX/Y3zqm/d/WFOVLtVdtGXFbN1Y/+fTzu/YIFTfaBZiOSw7u4ywsCL31mAa0CdQqYzR 562139661@qq.com

若无公钥,则创建后再查看:
ssh-keygen -t rsa -C "youremail@example.com"

将公钥放入authorized_keys文件

[root@bogon .ssh]# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDr33+shQDZTW1xLfiIEDfiNfV4kUI6FaEpU7Gut3Hb2HgnCrn0hiowq86mMsn32yU67neyTq04leIYHpjSwHZ3fKBGMLUiY3QfF5I3N1aWSbdbjv9ZXdJpCypEC1KB/JoGvHgPvl9dvKIrPBWWaAeZVFHIivXyehmjZzv2gkMLZnSpc0CWPXJajq34sgB8ejt9G0dCM4S8sQbqVqkNRrZUNP8kflDHxD6SjVaMF7uuzh3mDJakrpnmE0yfsK6/SHiySnTRSXwyGkYuQqQghtX/Y3zqm/d/WFOVLtVdtGXFbN1Y/+fTzu/YIFTfaBZiOSw7u4ywsCL31mAa0CdQqYzR 562139661@qq.com

4.初始化git仓库:

选定一个目录作为git的仓库,假定为/srv/sample.git,在srv目录下输入一下命令:

git init --bare sample.git
(sample.git为库名)

[root@bogon srv]# git init --bare sample.git
[root@bogon srv]# ll
总用量 0
drwxr-xr-x. 7 root root 119 730 10:46 sample.git

重点!重点!重点!
需要满足三个条件:
服务器上.ssh的目录权限必须是700
服务器上.ssh/authorized_keys文件的权限必须是600
git家目录下所有文件拥有者和群组都必须是git(包括.和…)
主要修改命令为:
chmod 700 .ssh
chmod 600 authorized_keys
chown -R git:git .ssh
chown -R git:git ..

5.禁用Shell登录

处于安全考虑,git用户不允许登录Shell,这里可以通过编辑服务器里的/etc/passwd完成

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

改成:

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

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出

6.克隆远程仓库

这样我们就可以在克隆服务器远程仓库了,使用git clone
git clone git@server:/srv/sample.git

克隆之后的样子:

[root@admin GitDepository01]# ll
总用量 0
drwxr-xr-x. 3 root root 36 730 11:59 sample

可以在里面进行读写操作,已经自动帮sample文件git init
要推送到服务器远程仓库的话
需要连接远程库:git remote add orgin git@server:/srv/sample.git
再进行:git push orgin master

特殊情况:
创建完后使用git branch无分支
这时你只需要随便vi 文件名,然后依次使用git add 文件名git commit -m "example script"正常添加和提交文件
再使用git branch就可以正常见到master分支了

[root@admin sample]# git branch
* master
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值