linux搭建git私服

2019-07-25  本文已影响0人  打不开的回忆

最近帮朋友弄git私服,记录一下方便以后操作。
目标:在linux上搭建一个git服务器,供远程操作项目管理。本篇不做权限管理,通过手动在服务器维护authorized_keys方式授权。如果想参考gitlab 可视化管理方式,请看:Linux搭建gitLab

搭建环境

一、服务端搭建

  1. 安装git
yum install git -y //拉取最新git即可
  1. 查看git版本
git --version //正常显示版本表示安装成功
  1. 添加git用户
useradd git //这里不一定非要是 ‘git’这个名字,为了方便使用git
  1. 修改git登录密码
passwd git //修改上一步添加git的用户密码!!!注意密码强度要规范!!!

这里注意密码强度一定要合法,8-16位数字、字母、字符且不能含有用户名,下面就是错误提示

image.png
  1. 创建一个git空项目
cd /app/
mkdir test
cd test/
git init --bare test.git  //bare方式创建一个空项目

至此服务端的git已经安装部署好,并且已经生成了一个空目录的git项目,git地址为:git@ip:port/dir/example.git 例如git@127.0.0.1:/app/test/test.git
如果ssh默认端口22可以省略不写,否则port为对应ssh端口

二、客户端安装

  1. git官网下载版本安装 https://git-scm.com/downloads
  2. windows电脑打开一个文件夹,右键选择 Git Bash here,在git窗口检验是否安装成功。
git --version
image.png
  1. 下载服务端的git项目
git clone 服务ip:/app/test/test.git  //初次链接服务器,会提示是否授信,输入yes即可

4.clone项目时会提示输入密码,直接输入在服务端创建git账号时填写的密码即可。即前面提到的git用户的密码。
至此客户端应能够下载git代码了,但仅限于用git账号密码ssh链接下载,显然不是我们想要的!如何使用自己的git账号连接远程git服务器进行代码的操作呢?

三、使用SSH公钥操作git服务器

  1. 客户端生成ssh公钥
ssh-keygen -t rsa -C "gitEmail@163.com" //一路回车即可
image.png
  1. 找到ssh公钥和私钥,windows客户端C:\Users\你的用户.ssh


    image.png

    id_rsa为私钥,id_rsa.pub公钥,公钥可以配置在git服务器上

  2. git服务器打开RSA认证
    进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:
RSAAuthentication yes //RSA权限认证
PubkeyAuthentication yes  //公钥认证(若没有手动添加)
AuthorizedKeysFile .ssh/authorized_keys //公钥存放地址,这里的.ssh指的是git用户的.ssh目录,非root用户的目录,即/home/git用户/.ssh
image.png
重启sshd服务
systemctl restart sshd.service
  1. 添加客户端id_rsa.pub到git服务器authorized_keys
cd /home/git
mkdir .ssh //如果不存先创建
cd .ssh/
chown -R git:git .ssh //授权
chmod 700 -R git:git /home/git //文件夹权限
touch authorized_keys
rz id_rsa.pub
cat id_rsa.pub >> authorized_keys
  1. 关闭git用户shell登录
    git服务端:编辑/etc/passwd文件,将
    git:x:1001:1001:,,,:/home/git:/bin/bash
    改为:
    git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

至此,已经完成了git服务器的搭建,已经添加ssh公钥的用户,可以在客户端进行git操作了!


上一篇下一篇

猜你喜欢

热点阅读