Linux 环境下 Git 服务器的搭建与基本使用(Ubuntu版本)

由于公司一些私密业务不适合托管在Github上,因此在Linux搭建了Git服务器,方便和windows进行交互,并且在同一局域网内,安全问题得到了保障。

总的来说,就是在Linux配置了服务器端和客户端,在windows配置了客户端。

服务器端:
1. 安装 Git
1.1 从 yum 上安装 git
sudo apt-get install git
1.2 验证是否安装成功
git --version

如果显示当前版本号,说明安装成功
在这里插入图片描述

2. 创建 Git 的专属管理账户和密码
2.1 创建 Git 账户
adduser git
2.2 设置 Git 账户的密码
passwd git

连续两次输入密码后即可

查看 Git 账户是否创建成功

cd /home && ls -al

如果有 git 说明安装成功
在这里插入图片描述

3. 创建测试 git 仓库

切换到 git 账户

su git

进入 git 账号的用户主目录

cd /home/git

在用户主目录下创建 test.git 仓库的文件夹

mkdir test.git  && cd test.git

test.git 目录下初始化 git 仓库

git init --bare

其中 git init --bare 是在当前目录创建一个裸仓库,也就是说没有工作区的文件,直接把 git 仓库隐藏的文件放在当前目录下,此目录仅用于存储仓库的历史版本等数据。

仓库的路径为:/home/git/test.git

4. 配置账户免密码登录
4.1 创建 ssh 的默认目录

进入 git 账户的主目录

cd /home/git

创建 .ssh 的配置,如果此文件夹已经存在请忽略此步

mkdir .ssh
4.2 创建校验公钥的配置文件

进入 .ssh 目录并创建 authorized_keys 文件,此文件存放客户端远程访问的 ssh 的公钥

cd /home/git/.ssh
touch authorized_keys

设置权限

chmod 700 /home/git/.ssh/
chmod 600 /home/git/.ssh/authorized_keys

服务端配置到此全部完成

客户端:
1. 与服务端在同一主机下的客户端配置
1.1 安装 git

由于是与服务端放在同一主机下,在安装服务端时已经安装

1.2 客户端配置

设置用户名和邮箱

git config --global user.name "client_username"
git config --global user.email "example@mail.com"

查看是否存在 ssh keys

cd ~/.ssh

创建 ssh keys

ssh-keygen -t rsa -C "example@mail.com"

碰到需要输入的地方直接按回车键,最后创建成功后的结果如下
在这里插入图片描述
将生成的文件复制到 git 目录下

cp /root/.ssh/id_rsa.pub /home/git/.ssh/test.pub

将 test.pub 文件中的内容追加到 authorized_keys 中

cat test.pub >> authorized_keys
1.3 克隆仓库

创建本地文件夹

mkdir test_project && cd test_project

克隆远程仓库

git clone git@ip地址:/home/git/test.git

这时候,会提示克隆的仓库是空的,现在仓库的确是空的,所以没有报错

ls 查看目录下是否存在 test 文件夹,如果存在,说明克隆成功

2. 远程客户端配置(Windows 10)
2.1 安装 Windows 版 Git 工具
2.2 客户端配置

设置用户名和邮箱

git config --global user.name "client_username"
git config --global user.email "example@mail.com"

进入目录 C:\Users\你的用户名 查看是否有 .ssh 文件夹,此文件夹下是否有如下两个文件
在这里插入图片描述
如果没有,那么用 ssh-keygen 创建 ssh 的私钥

ssh-keygen -t rsa -C "example@mail.com"

手动将公钥添加到服务器中,先找到 C:\Users\你的用户名.ssh\id_rsa.pub 这个文件所在目录

把本地的 id_rsa.pub 文件拷贝到 git 服务器

scp ./id_rsa.pub root@你的ip地址:/home/git/.ssh/test.pub

登录服务器,找找上一步上传的 test.pub 文件,目录为 /home/git/.ssh/

将 test.pub 文件中的内容追加到 authorized_keys 中

cat test.pub >> authorized_keys

当然,上面这一步也可以省略,不需要把密钥添加到服务器中添加信任,只需要在进行下一步操作即克隆远程仓库地址的时候,输入你创建git用户的密码即可。

2.3 克隆仓库

创建本地文件夹

mkdir test_project && cd test_project

克隆远程仓库

git clone git@ip地址:/home/git/test.git

这时候,会提示克隆的仓库是空的,现在仓库的确是空的,所以没有报错

ls 查看目录下是否存在 test 文件夹,如果存在,说明克隆成功

本地提交与服务器端的拉取测试

在上一步克隆的 test 文件夹中新建一个文件 test.txt

在当前目录中打开

git status
git add -A
git commit -m "test add"
git push origin master

如果出现如上提示,说明本地提交成功

切换到服务器端,进入 1.3 步骤中创建的文件夹下(请根据实际情况输入目录)

cd /test_project/test
git pull

如果出现如上提示,说明更新成功

如果要拉取服务器最新提交的代码或者文件,执行以下命令即可。

git pull
修改SSH端口

由于一般默认使用22端口访问linux,怕遭受攻击,所以一般会修改ssh的默认访问端口。

步骤一,首先修改配置文件

vi /etc/ssh/sshd_config

找到#Port 22一段,这里是标识默认使用22端口,修改为如下:

Port 22  
Port 18522 

保存退出
在这里插入图片描述
更改完端口号后sshd服务新端口号还无法使用,因为firewall及SELinux还不允许该端口号通过

步骤2,添加此端口号至防火墙,允许端口号通过防火墙

firewall-cmd --zone=public --add-port=18522/tcp --permanent

在这里插入图片描述
如上图所示正常情况下不会有图上错误,因为我已经添加过了此端口号所有会有提示,注意末尾的success,表示添加成功!

步骤3,重新加载防火墙,并重启防火墙服务

firewall-cmd --reload

在这里插入图片描述
并没有报错,我们也可以查看一下防火墙运行状态
在这里插入图片描述
running,说明防火墙运行正常

步骤4,检查SELinux服务是否运行
在这里插入图片描述
如上图显示enabled表示SELinux已启用

步骤5,使用semanage命令查看当前SELinux当中ssh运行端口号
在这里插入图片描述
如上图所示第一次查看的时候SELinux默认情况下ssh服务只启用了22号端口号,因此我们使用

semanage port -a -t ssh_port_t -p tcp 18522 命令将我们需要添加的端口加到SELinux内使SELinux允许sshd服务使用此端口号登陆

再次查看端口号已经多了18522号端口

步骤6,重启sshd服务
在这里插入图片描述
如上图所示并未提示错误,查看运行状态 systemctl status sshd.service 显示running

到这里新的端口号已经添加并且可以进行登录了,先看看测试机IP地址,然后我们在测试一下

在这里插入图片描述
步骤7,登录测试,
在这里插入图片描述
如上图所示,已经登录成功,并且使用了自己更改过后的端口号,修改成功,

步骤8,到这里还未结束,既然使用了新端口号,那就把默认端口号注释掉吧,(只需要把它从防火墙规则内剔除就无法使用此端口进行登录动作)

在这里插入图片描述

如上图所示由于测试之前我已剔除了此端口所以会有提示,最后在重新载入防火墙规则即可

若想要删除自己添加的端口号可使用命令:

semanage port -d -t ssh_port_t -p tcp 65222(这是我自己修改的端口号)
更改Git的端口号

方法一、直接修改URL为SSH://开头

打开gitbash,进入仓库,输入指令:

git remote set-url origin ssh://git@ip:18522/home/git/YourProject/project.git

在这里插入图片描述
其中,
1:Git仓库的地址
2:仓库的端口号
3:仓库名字和地址

方法二、修改本地配置文件

打开gitbash,进入仓库,输入指令: vim .git/config,或者windows下进到仓库文件夹,进入.git 用编辑器打开config文件,
在这里插入图片描述
在url=后面写上自己的服务器地址,端口号和仓库地址,格式同方法一。

设置完毕后,打开gitbash,执行git pull 指令,若能成功pull下代码,则表明git端口修改成功。

结语

至此,整个 Git 服务的部署与使用就全部搭建完成.

参考文献
  • https://learnku.com/articles/30215
  • https://www.linuxidc.com/Linux/2018-05/152372.htm
  • https://blog.csdn.net/laughing_cui/article/details/108816786
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 搭建一个Git服务器是一个相对容易的过程,以下是一个简单的步骤: 1. 获取一个Linux操作系统,如Ubuntu或CentOS。确保你具有root权限。 2. 在服务器上安装Git软件。使用以下命令在终端中运行: 对于Ubuntu系统: ``` sudo apt-get update sudo apt-get install git ``` 对于CentOS系统: ``` sudo yum update sudo yum install git ``` 3. 创建一个新用户来管理Git服务器。可以使用以下命令创建一个名为"git"的用户: ``` sudo adduser git ``` 设置一个密码并记录下来。 4. 切换到git用户。可以使用以下命令: ``` su git ``` 5. 创建一个专门用于存储Git仓库的目录。可以使用以下命令来创建目录并进入该目录: ``` mkdir gitrepo cd gitrepo ``` 6. 初始化Git仓库。使用以下命令: ``` git init --bare ``` 7. 退出git用户并返回root用户。 ``` exit ``` 8. 配置SSH认证。使用以下命令编辑SSH配置文件: ``` sudo nano /etc/ssh/sshd_config ``` 找到以下行并取消注释修改为"yes",确保SSH密钥认证是启用的: ``` PubkeyAuthentication yes ``` 保存并退出。 9. 重启SSH服务以使更改生效。使用以下命令: 对于Ubuntu系统: ``` sudo service ssh restart ``` 对于CentOS系统: ``` sudo systemctl restart sshd ``` 10. 现在你的Git服务器已经搭建完成。你可以通过用Git客户端克隆服务器上的仓库,例如: ``` git clone git@your_server_ip:/path/to/gitrepo.git ``` 替换"your_server_ip"为你的服务器IP地址,"/path/to/gitrepo.git"为你创建的Git仓库的路径。 这些步骤将让你能够在你的Linux服务器搭建一个Git仓库,并开始使用。请注意,这只是最基本的过程,你还可以通过配置Git的其他特性来增强服务器的功能。 ### 回答2: 搭建一个Git服务器使用Linux操作系统的常见任务之一。以下是一个简单的步骤指导,帮助你在Linux搭建一个Git服务器。 1. 首先,在你的Linux服务器上安装Git软件。可以使用系统的包管理器来安装,比如在Ubuntu上可以使用以下命令:`sudo apt-get install git`。 2. 创建一个用于存储Git仓库的目录。可以选择在服务器的任意位置创建,比如 `/opt/git`。使用以下命令创建目录:`sudo mkdir /opt/git`。 3. 通过以下命令进入该目录:`cd /opt/git`。 4. 初始化一个裸仓库(Bare Repository),这是一个没有工作目录的纯粹的Git仓库,用于充当服务器上的中央仓库。使用以下命令创建裸仓库:`sudo git init --bare your_repository_name.git`。这里的`your_repository_name.git`是你想要创建的仓库的名称。 5. 设置仓库的权限。为了安全起见,只有具有权限的用户才能访问和推送到仓库。可以使用以下命令设置权限:`sudo chown -R git:git your_repository_name.git`。这里的`your_repository_name.git`是你刚才创建的仓库的名称。 6. 配置Git服务器,并启用SSH访问。编辑Git服务器的SSH配置文件,可以使用以下命令:`sudo nano /etc/ssh/sshd_config`。在配置文件中添加一行:`AllowUsers git`,然后保存并关闭文件。 7. 重启SSH服务以使配置生效:`sudo service sshd restart`。 8. 现在,可以通过SSH协议克隆或推送到你的Git服务器。例如,使用以下命令克隆仓库:`git clone git@your_server_ip:/opt/git/your_repository_name.git`。请记得将`your_server_ip`替换为你的服务器的IP地址,`your_repository_name.git`替换为你刚才创建的仓库的名称。 通过按照上述步骤,在Linux搭建一个Git服务器并完成相关配置,你就可以在服务器上管理和共享你的Git仓库了。 ### 回答3: 要搭建一个基于Linux操作系统的Git服务器,需要以下步骤: 1. 安装Linux操作系统:在一台服务器上安装Linux系统,可以选择Ubuntu、CentOS等常见的发行版。 2. 安装Git软件:使用Linux系统的包管理器,如apt-get(Ubuntu)或yum(CentOS),安装Git软件。 3. 创建Git用户和组:通过命令行创建一个Git用户和一个属于该用户的组,用于管理Git仓库的访问权限。 4. 安装SSH服务:Git使用SSH协议进行远程仓库的访问和通信。确保安装并启动SSH服务,配置允许Git用户进行SSH访问。 5. 切换到Git用户:通过命令行切换到Git用户,以执行后续的操作。 6. 创建Git仓库:使用Git命令创建一个新的仓库,可以使用"git init"命令来初始化一个空的仓库。 7. 配置Git仓库:通过"git config"命令配置Git仓库的参数,例如仓库名称、用户名、邮箱等。 8. 设置Git远程访问:通过SSH协议设置Git远程访问,提供SSH公钥给用户,以便他们可以通过SSH协议访问Git仓库。 9. 设置Git核心服务器钩子:在Git服务器上配置钩子,可以在提交代码或推送代码等操作时触发一些自定义的操作。 10. 测试Git服务器:确保配置正确且服务器正常运行后,使用Git命令测试访问Git仓库的各种操作,如克隆、提交、推送等。 通过以上步骤,就可以在Linux系统上成功搭建一个Git服务器,为团队提供代码托管和版本控制的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安替-AnTi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值