当前位置: 首页 > news >正文

Git仓库的创建

Git服务器准备

假设Git所在服务器为Ubuntu系统,IP地址10.17.1.5。

一. 准备运行git服务的git用户,这里用户名就直接设定为git。

1. 创建一个git用户组,并创建git用户。

sudo groupadd git

sudo useradd git -g git

2. 创建git用户目录,以及密钥认证文件。

sudo mkdir -p /home/git/.ssh

sudo touch /home/git/.ssh/authorized_keys

cd /home

sudo chown -R git:git git

3. 确保git用户的认证文件权限正确。

sudo chmod 700 /home/git/.ssh

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

4. 禁用git用户shell登录。

出于安全考虑,git用户不允许登录shell。

编辑/etc/passwd文件,找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

改为:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,为git用户指定的git-shell每次一登录就自动退出。

二. 安装git。

安装git:

sudo apt install git

三. 创建git仓库。

1. 先创建一个目录作为Git仓库。

Git仓库目录通常命名为*.git,假定是/data/git/demo.git。

创建目录:

mkdir -p /data/git/demo.git

将目录所有者改为git用户:

cd /data/git

sudo chown -R git:git demo.git

2. 初始化Git仓库。

cd /data/git

sudo git init --bare demo.git

四. 为使用Git服务的用户创建密钥。

1. 生成密钥文件。

假设为张三、李四两名开发者分别准备密钥。

使用ssh-keygen工具为张三创建密钥对:

ssh-keygen -t rsa

创建密钥的过程中,一路点击回车就可以了,不需要填任何东西。

生成的公钥和私钥文件默认存储在用户目录下的.ssh目录中。

例如linux系统中root用户执行ssh-keygen生成的密钥文件位于:

/root/.ssh

windows系统中dancen用户生成的密钥文件位于:

C:\Users\dancen\.ssh

其中,id_rsa.pub为公钥,id_rsa为私钥,这里重命名密钥文件为:

id_rsa_zhangsan.pub

id_rsa_zhangsan

再次使用ssh-keygen工具为李四创建密钥对:

ssh-keygen -t rsa

然后重命名密钥文件为:

id_rsa_lisi.pub

id_rsa_lisi

2. 添加公钥至Git服务器的git用户认证文件中。

把公钥添加到git服务器上git用户的认证文件/home/git/.ssh/authorized_keys。

依次把id_rsa_zhangsan.pub、id_rsa_lisi.pub的内容添加到authorized_keys中,authorized_keys内容如下:

# zhangsan

ssh-rsa ****** ad\zhangdan@gzy-20210126-02

# lisi

ssh-rsa ****** ad\zhangdan@gzy-20210126-02

3. 将私钥提供给使用Git服务的用户。

分别将id_rsa_zhangsan.pub、和id_rsa_lisi.pub提供给使用Git服务的zhangsan和lisi。

Git客户端准备

一. 在客户端部署Git私钥。

使用Git服务的用户需要将Git服务器管理员提供的私钥文件妥善存储。

以zhangsan为例,假设其使用windows系统,通常将私钥文件存储到用户目录下的.ssh目录:

C:\Users\zhangsan\.ssh

用户在使用git时默认匹配的私钥文件为:

C:\Users\zhangsan\.ssh\id_rsa

如果私钥文件没有部署在默认位置,或者没有使用默认名称id_rsa,则用户在使用git时需要临时指定私钥文件。

此时,为了避免每次都临时指定密钥文件,可通过客户端的配置文件config明确指定私钥文件和服务器的对应关系。

config文件位置:

C:\Users\zhangdan\.ssh\config

在config中添加如下内容:

Host 10.17.1.5

    HostName 10.17.1.5

    User git

    IdentityFile ~/.ssh/id_rsa_zhangsan

如此,当用户通过ssh连接10.17.1.5服务器时,将自动使用id_rsa_zhangsan作为私钥。如果存在多个ssh服务器和私钥映射关系,则在config中继续添加配置即可。

二. 克隆git仓库。

1. 安装git。

1. 配置git用户身份。

git config --global user.name "zhangsan"

git config --global user.email "zhangsan@ad.com"

解释

git config --global user.name "Your Name":这条命令设置全局的 Git 用户名,所有的 Git 提交都会使用这个名字。

git config --global user.email "email@example.com":这条命令设置全局的 Git 用户电子邮件地址,所有的 Git 提交都会使用这个电子邮件地址。

2. 克隆git仓库。

git clone git@10.17.1.5:/data/git/demo.git

http://www.xdnf.cn/news/897823.html

相关文章:

  • 机器学习笔记【Week7】
  • window安装docker
  • 无需域名,直接加密IP的SSL方案
  • Docker容器化技术概述与实践
  • 【Python工具开发】k3q_arxml 简单但是非常好用的arxml编辑器,可以称为arxml杀手包
  • python闭包与装饰器
  • Chrome安装代理插件ZeroOmega(保姆级别)
  • 浏览器工作原理01 [#]Chrome架构:仅仅打开了1个页面,为什么有4个进程
  • .NET AOT 详解
  • Spring AI 入门:Java 开发者的生成式 AI 实践之路
  • 保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
  • C#报错 iText.Kernel.Exceptions.PdfException: ‘Unknown PdfException
  • uniapp+vue2解构赋值和直接赋值的优缺点
  • 12.vite,webpack构建工具
  • 云原生玩法三问:构建自定义开发环境
  • 父组件prop传向子组件的值,被子组件直接v-model绑定 功能不生效
  • win10安装WSL2、Ubuntu24.04
  • 华为云学堂-云原生开发者认证课程列表
  • uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
  • 惊艳呈现:探索数据可视化的艺术与科学
  • 详细介绍uni-app中Composition API和Options API的使用方法
  • 微信小程序- 用canvas生成排行榜
  • iview Switch Tabs TabPane 使用提示Maximum call stack size exceeded堆栈溢出
  • 大白话解释一下 MIC Bias
  • React - 组件通信
  • CDN:静态资源如何加速?
  • 采用轮询的方式实现在线人数
  • SpringAI 1.0.0 正式版——利用Redis存储会话(ChatMemory)
  • Kafka 入门指南与一键部署
  • SpringCloud学习笔记-3