创建git私有仓库
2023-02-18 15:28:51 时间
以ubuntu服务器为例,如果要创建小范围的私有git服务器,是非常简单的,只需要如下几个简单步骤:
Step 1: 安装git
直接通过sudo apt-get install git即可完成。
Step 2: 创建git用户
git用户用来通过SSH连接git服务,输入命令:
$ sudo adduser git
Step 3: 创建证书登录
首先收集所有需要登录的用户公钥,然后导入到/home/git/.ssh/authorized_keys文件即可。
Step 4: 初始化git仓库
假设仓库位于/srv/sample.git,在/srv目录下输入命令:
$ sudo git init --bare sample.git
这样就创建了一个裸仓库,裸仓库没有working dir,因为服务器上的git仓库纯粹是为了共享,仓库目录一般以.git结尾。然后把owner改为git:
$ sudo chown -R git:git sample.git
Step 5: 防止登录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。
Step 6: 克隆仓库
在客户端就可以通过ssh克隆仓库了:
$ git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.
然后,就可以正常推送了:
$ touch README
$ git add README
$ git commit -m "add readme"
$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 212 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@ubuntu:/srv/sample.git
* [new branch] master -> master
相关文章
- [Git] 生成token解决github remote: Support for password authentication was removed on August 13, 2021.
- [Git] 解决git错误 OpenSSL SSL_read: Connection was reset, errno 10054
- [Golang] 升级gin框架和jwt-go
- [Github] 配置ssh免密码登录解决 You've successfully authenticated, but GitHub does not provide shell access.
- [Golang] go list命令查看依赖的版本
- [Linux] /etc/profile和~/.bashrc与PATH环境变量
- php即时通讯im系统-泡泡IM-thinkphp workerman框架-linux宝塔私有化独立部署安装教程
- 在线客服系统源码,基于Golang和MySQL,可编译私有化部署的客服系统
- [Linux] 解决secureCRT 登录 ubuntu20.04报错 No compatible key exchange method. The server supports these methods
- [GOFLY在线客服系统] 开源版与商务版的区别
- 一文带你了解什么是GitOps
- Go语言逆向技术:常量字符串
- 【架构师(第四十篇)】 服务端开发之连接 Mongodb 数据库
- [git] git stash 暂存未提交的修改文件
- [linux] unzip把压缩文件解压到指定目录下 -d
- [git] git status命令查看文件状态
- 在线客服系统-全渠道接入-不限制坐席、域名、服务器-GOFLY在线客服系统
- [Golang系列] gorm执行like模糊查询
- [Linux系列] Vim命令清空文件删除所有内容
- [Linux系列] 在线客服系统代码脚本-getconf LONG_BIT获取当前系统的位数