Toggle Navigation
首页
Golang
PHP
Laravel
Magento
Linux
数据库
MySQL
Redis
Mongodb
热门知识
程序与生活
架构师之路
静态站点
GitHub
主页
在CentOS下搭建自己的Git服务器
在CentOS下搭建自己的Git服务器
04-29
Mark
706
首先需要装好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数据表格
1324
Magento上传文件、缩略图和导出CSV
1238
Laravel带有条件搜索的分页
1148
Magento优化 – MySQL读写分离
1101
Magento后台添加rule规则
1052
Magento常用模块分享
870
Magento 建立自己的shell命令
812
10个实用的PHP正则表达式
799
热门标签
下载
上传
导出
laravel分页
读写分离
rule
规则
模块
shell
正则
Collection
binlog
命名空间
微信公众号
Git
解锁
锁表
string
处理
composer
事务处理
读写
架构
系统
表分割
函数
redis sentinel
time
日志分析
进阶
事务处理
缓存
package
schedule
交叉编译
HTTPS
fmt
golang
channel
事务
分布式锁
日志过滤
日志分割
mongodb
git服务器
gogs
多数据库
Dockerfile
json
php
protobuf
版本号
concat
发展方向
Gopher面试
get
post
goroutine
负载均衡
重载配置
模型关系
rpc
算法
mongodb
laravel
docker
elasticsearch
写文件
golang算法
defer
panic
redis
代码部署
主从配置
Dataflow
curl
package
Shell
生成插件
直接下载
并发
量级
数据类型
protobuf
参数
错误传递
队列
Go指针
成长
方法
websocket
grpc
路上
风景
protobuf
Redis持久化
yum
内存泄漏