linux下部署git服务器

本文详细介绍了如何在Redhat7.4环境下搭建Git服务器,包括用户创建、目录初始化、SSH密钥配置及权限设置等步骤,实现客户端与服务端之间的安全连接。

我这里用的是redhat7.4, 直接开始吧.

环境
服务端: Redhat7.4 + git(version 1.8.3.1) IP:192.168.137.168
客户端: win7 + git (version 2.19.1)
Git

server:

[root@localhost gittest.git]# git --version
git version 1.8.3.1

我这里是有的, 没有的话

yum install git -y

client:

官网地址: https://git-for-windows.github.io/
服务器操作
  • 新建git用户与赋予密码
useradd git
passwd git

注:这里的密码我用1234

  • 为服务器创建一个git用的文件夹(git仓库)
mkdir /usr/local/gittest.git

注:这个目录可以随便建(项目在哪就放哪), 只要后面授权给git用户管理就行

  • 初始化
git init --bare /usr/local/gittest.git
  • 授权
chown -R git:git /usr/local/gittest.git

注:这个就很简单了,在/usr/local/gittest.git下会看到生成了目录

客户端操作

注:这一波用的不是powershell或者cmd, 确定客户端的git已安装.

  • 简介

  • 新建目录
hp@hp-PC MINGW64 /d/wamp64
$ mkdir gittest_gitbash

hp@hp-PC MINGW64 /d/wamp64
$ ls
gittest/  gittest_gitbash/  www/
c
hp@hp-PC MINGW64 /d/wamp64
$ cd gittest_gitbash/
hp@hp-PC MINGW64 /d/wamp64/gittest_gitbash
$ pwd
/d/wamp64/gittest_gitbash
  •  clone项目
git clone git@192.168.137.168:/usr/local/gittest.git

 注:这个就很容易理解了, 将服务器上面的文件夹下的东西拉取到本地(就是这个目录下d:\wamp64\gittest_gitbash)

  • 自动弹出提示
The authenticity of host '192.168.137.168 (192.168.137.168)' can't be established.
RSA key fingerprint is SHA256:Ve6WV/SCA059EqoUOzbFoZdfmMh3B259nigfmvdadqQ.
Are you sure you want to continue connecting (yes/no)? yes

成功!

  • 发现 
 此时会在本地C:\Users\用户名\.ssh 下生成文件 known_hosts
  •  创建公钥私钥
ssh-keygen -t rsa -C "邮箱"

注:此时C:\Users\用户名\.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub

 

  • 服务器Git打开rsa认证
[root@localhost gittest.git]# cd /etc/ssh/
[root@localhost ssh]# ls
moduli      sshd_config         ssh_host_ecdsa_key.pub  ssh_host_ed25519_key.pub  ssh_host_rsa_key.pub
ssh_config  ssh_host_ecdsa_key  ssh_host_ed25519_key    ssh_host_rsa_key
[root@localhost ssh]# vim sshd_config
  •  打开三个注释
RSAAuthentication yes
PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

  • 重启sshd
systemctl stop sshd.service
systemctl start sshd.service
  •  在git用户目录新建.ssh目录
mkdir /home/git/.ssh
  •  授权
chown -R git:git /home/git

  • 将客户端公钥上传到服务器端git用户目录.ssh
cd C:\Users\用户
ssh git@192.168.137.168 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

注:这里要切换到.ssh的上一级目录, 因为要将authorized_keys文件当前内容上传到服务器中

  •  再看一下服务器上面的目录

  • 客户端再次clone远程仓库
git clone git@192.168.137.168:/usr/local/gittest.git

结尾
  • 禁止git用户ssh登录
vim /etc/passwd
将
git:x:1004:1005::/home/git:/bin/bash
改为
git:x:1004:1005::/home/git:/bin/git-shell

  

Git服务器搭建完毕!

 

后续
  • 删除远程分支点
git remote remove origin

  • 新建远程分支点
origin 为远程仓库别名  后面http 为远程仓库地址
git remote add origin git@192.168.137.168:/home/git/data/git/learngit.git

  • 本地库提交到远程分支(上传)
git push <远程主机名> <本地分支名>:<远程分支名>
git push learngit master:origin

  • 本地分支拉取远程分支(下载)

 

转载于:https://www.cnblogs.com/chenglee/p/9766898.html

Linux 系统上部署 Git 服务器是一个常见的需求,特别是在团队协作开发中。以下是详细的步骤指南: ### 创建 Git 用户 为了安全起见,建议为 Git 服务创建一个专门的用户。这可以通过以下命令完成: ```bash sudo adduser git ``` 为新创建的 `git` 用户设置密码。 ### 安装 Git 确保你的系统已经安装了 Git。如果没有安装,可以使用包管理器来安装。对于基于 Debian 的系统,如 Ubuntu,可以使用: ```bash sudo apt-get update sudo apt-get install git ``` ### 初始化 Git 仓库 切换到 `git` 用户,在该用户的主目录下创建一个用于存放仓库的目录,然后初始化一个裸仓库: ```bash su - git mkdir project.git cd project.git git init --bare ``` ### 配置 SSH 访问 客户端需要生成 SSH 密钥对,将公钥添加到服务器端 `git` 用户的 `.ssh/authorized_keys` 文件中。首先,在客户端生成密钥对: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 然后,将客户端的公钥文件(通常是 `~/.ssh/id_rsa.pub`)内容复制到服务器上的 `/home/git/.ssh/authorized_keys` 文件中。 ### 禁止 Git 用户通过 SSH 登录 为了进一步增强安全性,你可以修改 `/etc/ssh/sshd_config` 文件,添加或修改以下行以限制 `git` 用户只能进行 Git 操作而不能登录 shell: ``` Match User git ChrootDirectory %h X11Forwarding no AllowTcpForwarding no ForceCommand /usr/bin/git-shell -c "$SSH_ORIGINAL_COMMAND" ``` 之后重启 SSH 服务使配置生效: ```bash sudo systemctl restart sshd ``` ### 客户端克隆仓库 现在客户端可以通过 SSH 协议克隆仓库了: ```bash git clone git@server_ip_address:project.git ``` 以上步骤涵盖了从创建用户到配置 SSH 访问以及限制 Git 用户权限的基本流程。这些步骤可以帮助你在 Linux 系统上成功部署一个基本的 Git 服务器 [^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值