Linux安装——git服务器搭建

本文详细介绍了如何在阿里云服务器上安装Git、创建Git仓库、配置SSH及权限等步骤,帮助读者快速部署自己的Git服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天刚从阿里云买了一台云服务,搭建了一个svn,后来发现代码不能同时上传两个服务器的svn,于是乎就起了搭一个git库的想法。
经过一天的反复琢磨,总算是搭起来了,下面分享一下流程和我遇到的一些问题:

PS:接下来的命令我都是在root权限输入的,所以没有加sudo,用普通用户登录服务器的同学注意一下。

1.安装git

我的服务器是乌班图14.04版本,直接用apt-get就可以安装了,上命令:

apt-get install git

由于我新买的服务器,在安装过程中遇到了404的错误,这是因为刚买的服务器,可能是库里没有这个包,需要更新一下源文件,update一下就好了,上命令:

apt-get update

更新完之后顺利完成安装。

2.创建一个git仓库

git安装完成后,该创建一个远程仓库了,在/home/git 目录下创建一个空git仓库,名字随便起,但后面一定要加上.git,命令:

git init --bare myrepertory.git 

命令敲完后会提示你创建了一个空的git仓库,这样仓库就创建好了。

3.创建一个git账户

git有了,仓库也有了,接下来需要一个账号可以访问git服务器(不能用root账户,root权限太高了),所以需要在Linux下创建一个git专用账户,这也很简单,一句命令就完事:

adduser git

4.配置ssh

因为你要上传代码或者clone代码,需要远程连接服务器,所以需要一系列的ssh配置,让你使用的这个客户端可以不用密码访问git服务器,在这一步骤中有两个角色,一个是git服务器,一个是你日常敲代码用的服务器(下文用‘代码服务器’表示)。
1. 首先,一般的Linux都会自带ssh的相关软件,没有装的话 apt-get 一下就行了。
2. 然后找到你创建的git用户所在的目录(注意是git账户,不是git库),看看是否有.ssh文件夹,如果没有就创建一个新的.ssh文件夹,并在这个文件夹下新建一个叫authorized_keys 的文件,上命令:

mkdir .ssh
touch authorized_keys

3. authorized_keys这个文件是用来储存代码服务器的ssh公钥的,这样git服务器可以判断外来链接是否需要认证。当然,这个秘钥也是需要手动生成的(在代码服务器端),在生成秘钥之前需要去/root/.ssh目录下看下是否有id_rsa 和id_rsa.pub这两个文件,如果存在的话就不需要在生成了,因为已经存在了,直接将id_rsa.pub打开,复制里面的内容到上一步骤中创建的authorized_keys中就可以了。如果目录下没有这两个文件,就执行一条命令,然后狂按回车就ok了。上命令:

ssh-keygen -t rsa


4. 创建好秘钥,找到秘钥位置(/root/.ssh/id_rsa.pub),查看秘钥把里面内容(全部)复制到步骤二中创建的authorized_keys中,注意:一行一个秘钥。查看命令:

cat id_rsa.pub

5.设置git账户权限

之前的步骤是的git账户可以不用密码直接登录服务器,这也意味着可以不用密码登录shell,出于安全性考虑,限制git账户的登录权限,只能让他使用ssh。更改用户权限的文件在/etc/passwd,找到它并找到类似下面的一行:

git:x:1000:1000:1,1,1,1,1:/home/git:/bin/bash

将他改成

git:x:1000:1000:1,1,1,1,1:/home/git:/usr/bin/git-shell

就ok啦。

6.测试

git服务器算是搭好了,我测试了一下,还是发现了个问题,我在另一台云服务器上克隆一个文件,命令:

git clone git@host:/home/git/myrepertory.git

还是需要输入密码,于是百度了一下,是ssh配置的问题,在/etc/ssh/sshd_config文件中,将这几个属性改下就解决了:

StrictModes no
RSAAuthentication yes
PubkeyAuthentication yes

改完重启一下,就万事大吉了。

还有一个问题需要注意一下,在创建完git库之后要记得把git库的权限给到git账户,如果还是root账户的话,在提交代码的时候会报错导致上传失败。查看权限以及更改权限的命令:

ls -la  #此处需要进入git库的上级目录查看权限
chown -R git:git myrepertory.git(你创建的git库位置)

上一张报错的图片,苦逼的找了半天解决办法:
这里写图片描述

### 如何在内网环境中搭建配置Git服务器 #### 安装Git软件 为了能够在内网环境成功部署Git服务器,首先需要确保目标机器已安装Git工具。对于Linux系统而言,可以通过包管理器来完成这一操作;而对于Windows,则可以从官方网站获取最新版本的安装程序进行安装[^1]。 #### 创建专用用户账户 出于安全考虑,在建立Git服务之前应该先创建一个新的用户专门用于管理和访问Git仓库。这一步骤有助于隔离权限,防止不必要的风险发生。命令如下所示: ```bash sudo adduser git ``` 此命令适用于大多数类Unix操作系统,它会引导管理员设置新用户的初始密码以及其他必要参数[^3]。 #### 构建存储库位置 决定好要放置各个项目的根目录之后,就需要手动构建相应的文件夹结构以便后续使用。假设选择`/home/git`作为基址路径,那么执行下面这条指令即可实现目的: ```bash mkdir -p /home/git/repositories chown git:git /home/git/repositories chmod 700 /home/git/repositories ``` 上述脚本不仅建立了指定名称的新文件夹,同时还调整了其所属关系以及读写属性,从而保障只有特定身份才能对其进行修改操作[^4]。 #### 配置SSH无密码登录机制 为了让开发者能够更加便捷高效地同远端资源交互,通常还会启用基于SSH协议的身份验证方式,并允许客户端利用私钥代替传统口令来进行认证过程。具体做法是在每台工作站点生成一对密钥对并将其中公开部分上传至中央节点上的对应账号之下。例如,在Windows平台上可通过以下步骤达成: 1. 打开Git Bash窗口; 2. 设置全局变量: ```bash git config --global user.name "Your Name" git config --global user.email "you@example.com" ``` 3. 生产RSA类型的秘钥对并显示公钥内容: ```bash ssh-keygen -t rsa -C "your_email@example.com" cat ~/.ssh/id_rsa.pub ``` 4. 将得到的结果粘贴进远程主机内的`.ssh/authorized_keys`文档里去。 #### 初始化裸仓库存储空间 当一切准备工作都完成后就可以正式开启创建新的共享式代码库环节了。这里采用的是所谓的“裸”模式——即不含任何工作副本的状态,仅保留历史记录信息供克隆请求调用。实际应用中一般会选择某个具体的项目名作为子级单位加入到先前准备好的总集合当中。比如针对名为`sample.git`的数据集来说,应当这样处理: ```bash cd /home/git/repositories/ sudo -u git git init --bare sample.git ``` 这段语句的作用在于切换当前上下文为刚才新建的那个特殊角色,接着在其管辖范围内启动一个全新的、不带关联文件的工作区实例[^2]。 #### 测试连接有效性 最后但同样重要的一环就是检验整个架构能否正常运作起来。挑选任意一台联网PC尝试发起拉取动作看看能不能顺利取得预期成果。如果一切顺利的话,恭喜您已经拥有了属于自己的私人版分布式版本控制系统!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值