美文网首页
搭建私有git服务

搭建私有git服务

作者: 蛋西 | 来源:发表于2017-01-09 15:28 被阅读0次

由于我们在工作中,经常使用git作为代码管理工具,git相比svn等管理工具的诸多优势,在这里就不多做讨论,请自行百度。代码管理,我们肯定是需要一个作为仓库的地方,本文主要介绍一下怎么在私有服务器上搭建git服务

系统环境

  1. AWS EC2(Ubuntu)
  2. SSH
  3. git

解释
(Remote) 代表操作在远程服务器
(Local) 代表在本地操作

安装git(Remote)

AWS EC2(Ubuntu)上默认安装了git,如果没有安装,参照如下:

sudo apt-get update
sudo apt-get install git

添加git用户(Remote)

在AWS EC2(Ubuntu)上添加git用户

sudo useradd -m git   #添加git用户,名称可以自己设置,不一定要用git
sudo passwd git   #修改git密码

git用户主目录为/home/git/

生成密钥(Local)

在本机子上生成一对密钥

ssh-keygen -t RSA -C "git"    #使用RSA加密,密钥备注

回车后下一步下一步,其中会询问你是否输入私钥的密码,如果输入也可以,如果不输入直接回车即可

Generating public/private rsa key pair.
Enter file in which to save the key (/home/eggsy/.ssh/id_rsa):  #输入密钥文件名称
Enter passphrase (empty for no passphrase):   #输入私钥的密码
Enter same passphrase again:  #重复输入私钥的密码

然后会在当前目录生成一个密钥对

将密钥上传到远程服务器(Local)

scp -i ~/.ssh/eggsy.pem -r git_amazon.pub ubuntu@54.13.87.93:/home/ubuntu/
       密钥本地地址       要上传的文件(夹)路径 远程用户 IP     上传到的远程的目录   

解释:

  1. 上文中的密钥本地地址是指连接远程服务器的密钥,不是新生成的密钥,用户可以根据ssh连接远程的方式来自行设置是否需要密钥
  2. 要上传的文件(夹)路径是指上一步生成的公钥的文件
  3. 远程用户是指你登陆远程ssh的账户
  4. ip地址是指远程服务器的地址
  5. 上传的远程目录是指上传到远程服务器的目录地址

好了,以上就是所有的准备工作,接下来我们要将上传的公钥变成用户可以使用的公钥

生成可以识别的密钥文件(Remote)

cd ~  #切换到git主目录
mkdir .ssh  #生成.ssh目录用来存放公钥
sudo cat /home/ubuntu/git_amazon.pub >> /home/git/.ssh/authorized_keys  #将上传的公钥内容,追加到authorized_keys文件中去,用于识别登陆用户
sudo chown -R git:git /home/git/.ssh  #设置目录和目录下的authorized_keys文件的拥有者和群组

测试是否可以远程登陆(Local)

ssh -i ~/.ssh/git_amazon git@54.13.87.93

初始化git仓库(Remote)

sudo git init --bare project.git  #project你可以自己指定仓库名称,基础仓库以.git结尾
sudo chown -R git:git project.git
sudo chmod -R 755 peoject.git

验证(Local)

git clone git@54.13.87.93:/home/git/peoject.git

如果成功,会拉取到一个空的仓库

Cloning into 'project'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

自此,一个git私有仓库就搭建好了

附录

额外指定key来访问远程仓库(Local)

vim ~/.ssh/config 

输入

Host 你喜欢的名字,如gs
Hostname 亚马逊PUBLIC DNS
User git
IdentityFile C:/Users/test/.ssh/id_rsa #你的私钥路径
IdentitiesOnly 这个配置yes,表示只使用这里的key,防止使用默认的

**关闭git用户的ssh shell登陆(Remote) **

vim /etc/passwd

找到git用户,在最后添加

/usr/bin/git-shell

结果如下:

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

这时候就不能通过shell使用git账号登陆

fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to 54.13.87.93 closed.

相关文章

  • Git 服务器搭建

    搭建一台Git服务器作为私有仓库使用。 以 Centos 为例搭建 Git 服务器。 1、安装Git 创建一个gi...

  • 搭建私有git服务

    由于我们在工作中,经常使用git作为代码管理工具,git相比svn等管理工具的诸多优势,在这里就不多做讨论,请自行...

  • 模块化之私有服务器管理基础框架

    0.搭建git本地私有服务器 Git服务器搭建全过程分步详解 1.链接git仓库 2.在本地链接一个文件夹 将项目...

  • 搭建git服务器作为私有仓库,管理你的源码

    这篇文章主要讲在你的服务器上搭建git作为你的私有仓库,管理你的源码这篇文章主要讲在你的服务器上搭建git作为你的...

  • 搭建git服务器作为私有仓库

    这篇文章主要讲在你的服务器上搭建git作为你的私有仓库,管理你的源码这篇文章主要讲在你的服务器上搭建git作为你的...

  • CocoaPods私有库Steps

    1.创建私有仓库 先coding.net、OSChina、GitHub或者自己搭建的Git服务器上创建一个私有仓库...

  • 搭建企业私有Git服务

    git支持的四种通信协议: 1、Local(本地协议) 基于本地文件系统或共享(NFS)文件系统进行访问, 优点:...

  • 搭建私有 git

    git 搭建私有服务 【参考】【廖雪峰的官方网站】 错误收集 1. does not appear to be a...

  • 私有npm服务器搭建

    私有npm服务器搭建 标签(空格分隔): Node.js 私有npm服务器搭建 本次搭建是在ubuntu环境下搭建...

  • 搭建私有npm服务器教程

    私有npm服务器搭建 标签(空格分隔): Node.js 私有npm服务器搭建 本次搭建是在ubuntu环境下搭建...

网友评论

      本文标题:搭建私有git服务

      本文链接:https://www.haomeiwen.com/subject/eqlhbttx.html