Toggle Navigation
首页
Golang
PHP
Laravel
Magento
Linux
数据库
MySQL
Redis
Mongodb
热门知识
程序与生活
架构师之路
静态站点
GitHub
主页
在CentOS下搭建自己的Git服务器
在CentOS下搭建自己的Git服务器
04-29
Mark
1106
首先需要装好CentOS系统,作为测试,你可以选择装在虚拟机上,这样比较方便。这步默认你会,就不讲了。 有了CentOS,那么如何搭建Git服务器呢? **1、首先需要安装Git,可以使用yum源在线安装:** ```linux [root@localhost Desktop]# yum install -y git ``` **2、创建一个git用户,用来运行git服务** ```linux # adduser git ``` **3、初始化git仓库:这里我们选择/data/git/learngit.git来作为我们的git仓库** ```linux [root@localhost git]# git init --bare learngit.git Initialized empty Git repository in /data/git/learngit.git/ ``` 执行以上命令,会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git: ```linux [root@localhost git]# chown git:git learngit.git ``` **4、在这里,Git服务器就已经搭得差不多了。下面我们在客户端clone一下远程仓库** ```linux Zhu@XXX /E/testgit/8.34 $ git clone git@192.168.8.34:/data/git/learngit.git Cloning into 'learngit'... The authenticity of host '192.168.8.34 (192.168.8.34)' can't be established. RSA key fingerprint is 2b:55:45:e7:4c:29:cc:05:33:78:03:bd:a8:cd:08:9d. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.8.34' (RSA) to the list of known hosts. git@192.168.8.34's password: ``` **5、创建SSH Key** 首先在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key: ```linux $ ssh-keygen -t rsa -C "youremail@example.com" ``` 你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。 如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。 **6、Git服务器打开RSA认证** 然后就可以去Git服务器上添加你的公钥用来验证你的信息了。在Git服务器上首先需要将/etc/ssh/sshd_config中将RSA认证打开,即: ```linux RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys ``` 这里我们可以看到公钥存放在.ssh/authorized_keys文件中。所以我们在/home/git下创建.ssh目录,然后创建authorized_keys文件,并将刚生成的公钥导入进去。 然后再次clone的时候,或者是之后push的时候,就不需要再输入密码了: ```linux Zhu@XXX/E/testgit/8.34 $ git clone git@192.168.8.34:/data/git/learngit.git Cloning into 'learngit'... warning: You appear to have cloned an empty repository. Checking connectivity... done. ```
最新文章
Golang内存问题处理
WebSocket详解
Gopher面试中的Coding(三)
Golang用os/signal包实现平滑重载配置文件
Nginx实现负载均衡的几种方式
Golang中子goroutine与主协程同步的四种实现
Dockerfile文件详解
Golang开发微信公众号
最热文章
Magento实现下载csv数据表格
1797
Laravel带有条件搜索的分页
1692
Magento上传文件、缩略图和导出CSV
1690
Magento添加Advanced Dataflow
1641
Golang开发微信公众号
1570
Magento后台添加rule规则
1543
Magento优化 – MySQL读写分离
1509
Magento常用模块分享
1401
热门标签
下载
laravel分页
上传
导出
Dataflow
微信公众号
rule
规则
读写分离
模块
shell
正则
Collection
binlog
命名空间
处理
内存泄漏
Git
string
composer
解锁
锁表
事务处理
函数
redis sentinel
架构
系统
time
package
读写
事务处理
日志分析
进阶
缓存
golang
表分割
schedule
fmt
事务
分布式锁
交叉编译
HTTPS
日志分割
Gopher面试
mongodb
Dockerfile
channel
多数据库
git服务器
gogs
重载配置
负载均衡
日志过滤
php
protobuf
发展方向
版本号
模型关系
goroutine
concat
json
mongodb
get
post
defer
panic
golang算法
算法
docker
elasticsearch
rpc
代码部署
redis
主从配置
写文件
protobuf
laravel
websocket
并发
量级
package
curl
生成插件
直接下载
数据类型
Shell
错误传递
成长
grpc
参数
Go指针
队列
protobuf
方法
Redis持久化
路上
风景
yum