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

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.lryc.cn/news/2402726.html

相关文章:

  • 从零到一:Maven 快速入门教程
  • DDD架构实战 领域层 事件驱动
  • c# List<string>.Add(s) 报错:UnsupportedOperationException
  • postman基础
  • python训练营day45
  • B+树知识点总结
  • Halcon透视矩阵
  • SpringCloud——OpenFeign
  • 007-nlohmann/json 项目应用-C++开源库108杰
  • 移动端测试岗位高频面试题及解析
  • gvim比较两个文件不同并合并差异
  • App使用webview套壳引入h5(二)—— app内访问h5,顶部被手机顶部菜单遮挡问题,保留顶部安全距离
  • Git GitHub Gitee
  • 《深度体验 Egg.js:打造企业级 Node.js 应用的全景指南》
  • 蓝桥杯2118 排列字母
  • Python应用break初解
  • PLSQLDeveloper配置OracleInstantClient连接Oracle数据库
  • 高股息打底+政策催化增强+永续经营兜底
  • 双电机差速控制的MATLAB Simulink仿真方案,使用PWM和PID调节实现360°转向与速度控制_可复现,有问题请联系博主
  • 【Oracle】触发器
  • 基于深度学习的无人机轨迹预测
  • git连接本地仓库以及gitee
  • 使用Python和OpenCV实现图像识别与目标检测
  • 麒麟v10系统的docker重大问题解决-不支持容器名称解析
  • 基于5G下行信号的模糊函数分析matlab仿真,对比速度模糊函数和距离模糊函数
  • Selenium自动下载浏览器驱动
  • 数据库优化实战分享:高频场景下的性能调优技巧与案例解析
  • Redis 过期了解
  • 微信小程序前端面经
  • android 之 Tombstone