当前位置:   article > 正文

Linux 环境下 Git 服务器的搭建与基本使用(Ubuntu版本)_ubuntu gitee部署在linux服务器,如何启动

ubuntu gitee部署在linux服务器,如何启动

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

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

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

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

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

连续两次输入密码后即可

查看 Git 账户是否创建成功

cd /home && ls -al
  • 1

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

3. 创建测试 git 仓库

切换到 git 账户

su git
  • 1

进入 git 账号的用户主目录

cd /home/git
  • 1

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

mkdir test.git  && cd test.git
  • 1

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

git init --bare
  • 1

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

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

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

进入 git 账户的主目录

cd /home/git
  • 1

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

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

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

cd /home/git/.ssh
touch authorized_keys
  • 1
  • 2

设置权限

chmod 700 /home/git/.ssh/
chmod 600 /home/git/.ssh/authorized_keys
  • 1
  • 2

服务端配置到此全部完成

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

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

1.2 客户端配置

设置用户名和邮箱

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

查看是否存在 ssh keys

cd ~/.ssh
  • 1

创建 ssh keys

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

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

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

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

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

创建本地文件夹

mkdir test_project && cd test_project
  • 1

克隆远程仓库

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

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

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"
  • 1
  • 2

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

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

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

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

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

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

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

cat test.pub >> authorized_keys
  • 1

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

2.3 克隆仓库

创建本地文件夹

mkdir test_project && cd test_project
  • 1

克隆远程仓库

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

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

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

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

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

在当前目录中打开

git status
git add -A
git commit -m "test add"
git push origin master
  • 1
  • 2
  • 3
  • 4

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

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

cd /test_project/test
git pull
  • 1
  • 2

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

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

git pull
  • 1
修改SSH端口

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

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

vi /etc/ssh/sshd_config
  • 1

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

Port 22  
Port 18522 
  • 1
  • 2

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

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

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

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

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

firewall-cmd --reload
  • 1

在这里插入图片描述
并没有报错,我们也可以查看一下防火墙运行状态
在这里插入图片描述
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(这是我自己修改的端口号)
  • 1
更改Git的端口号

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

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

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

在这里插入图片描述
其中,
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
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/164150
推荐阅读
相关标签
  

闽ICP备14008679号