服务端操作

安装Git及创建用户组、用户

  1. 1
    2
    3
  1. yum install git
    groupadd git
    adduser git -g git

禁止用户git登录

修改/etc/passwd文件:

找到这句: git:x:503:503::/home/git:/bin/bash

改为: git:x:503:503::/home/git:/usr/bin/git-shell

git-shell这个命令地址有可能不是/usr/bin/git-shell,最好用which git-shell命令查看一下,确保命令地址正确。

创建证书登录

  1. 1
    2
    3
    4
    5
  1. mkdir /home/git/.ssh
    chmod 700 /home/git/.ssh
    chown -R git:git /home/git/.ssh/
    touch /home/git/.ssh/authorized_keys
    chmod 600 /home/git/.ssh/authorized_keys

启用免密登录

/etc/ssh/sshd_config,启用该文件中以下三项内容:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

然后重启ssh服务:service sshd restart

创建git仓库

  1. 1
    2
    3
    4
    5
    6
    7
    8
  1. $ cd /srv
    $ mkdir gitrepo
    $ chown git:git gitrepo/
    $ cd gitrepo
    # 创建一个空的Git仓库,服务器上的Git仓库通常都以.git结尾
    $ git init --bare project-name.git
    # 将仓库所属用户改为git 大专栏  在服务器搭建git服务器
    $ chown -R git:git project.git

客户端操作

生成密钥ssh-keygen -t rsa -C “youremail@xxx.com

如果不想以后使用时再输入密码,就一路回车,会生成id_rsa密钥文件和id_rsa.pub公钥文件,存放的地址会默认放在c:/Users/Shem/.ssh目录下。

如果有用户密码:可以使用命令将密钥追加到服务器git用户目录/home/git/.ssh/authorized_keys文件中:ssh root@host ‘mkdir -p /home/git/.ssh && cat >> /home/git/.ssh/authorized_keys’ < ~/.ssh/id_rsa.pub

也可以使用root登录后,将公钥内容直接复制,vim打开/home/git/.ssh/authorized_keys文件粘贴到里面去,一行一个公钥

拉取项目

git clone git@xxx.xxx.xxx.xxx:/srv/gitrepo/project-name.git(默认ssh端口为22)

git clone ssh://git@xxx.xxx.xxx.xxx:22/srv/gitrepo/project-name.git

如果ssh端口不是22,则需要修改此命令

免密访问失效的原因

  1. 可能是以上操作中的文件或者目录权限不正确,需要检查一遍
  2. 可能是selinux的开启导致
  3. 可能是以上操作“禁止用户git登录”导致的,则需要取消这个操作

参考

在服务器搭建git服务器的更多相关文章

  1. #阿里云#云服务器搭建git服务器

    前言:大家都知道,git是非常方便的版本控制工具,目前网上有很多免费的git仓库可以给我们使用,但是有些时候我们并不放心将我们的项目寄放在别人的服务器上,这个时候就需要自己搭建一个git服务器,十分的 ...

  2. 搭建Git服务器

    在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想 ...

  3. Git学习笔记(10)——搭建Git服务器

    本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...

  4. centos 搭建git服务器

    centos 6搭建git服务器 安装 rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm yum ins ...

  5. 如何在服务器上搭建git服务器

    参考文章: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770 ...

  6. 使用Gitosis搭建Git服务器

    使用Gitosis搭建Git服务器 作者: JeremyWei | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址: http://weizhifeng.net/build- ...

  7. CentOS 6.4 搭建git 服务器

    CentOS 6.4 搭建git 服务器 (2013-11-22 19:04:09)转载▼ 标签: it 分类: Linux 此文件是依据markdown所编写,更好效果参见本人github的文档ht ...

  8. Windows平台使用Gitblit搭建Git服务器图文教程

    Git服务现在独树一帜,相比与SVN有更多的灵活性,最流行的开源项目托管网站Github上面,如果托管开源项目,那么就是免费使用的,但是闭源的项目就会收取昂贵的费用,如果你不缺米,那么不在本文讨论的范 ...

  9. 在linux中搭建git服务器

    个人觉得, 以下搭建git服务器的过程就像是在linux增加了一个用户, 而这个用户的登录shell是 git-shell, 太刨根问底的东西我也说不清楚, 还是看下面的过程吧. 过程参考了网上的文章 ...

随机推荐

  1. 从零开始入门 K8s | Kubernetes 存储架构及插件使用

    本文整理自<CNCF x Alibaba 云原生技术公开课>第 21 讲. 导读:容器存储是 Kubernetes 系统中提供数据持久化的基础组件,是实现有状态服务的重要保证.Kubern ...

  2. PAT Advanced 1053 Path of Equal Weight (30) [树的遍历]

    题目 Given a non-empty tree with root R, and with weight Wi assigned to each tree node Ti. The weight ...

  3. ftp限制

    /etc/hosts.deny /etc/vsftpd/user_list 从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现 ...

  4. 01Java-方法

    一:动手动脑 1.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数 package reserve; import java.util.Scanner; import java.ut ...

  5. 插曲 强大的神器 vmware

    电脑到了  这连天给电脑配环境变量  真的想死  发现用 虚拟机 直接跑别人配置好的镜像文件   多快好省超级开心 比较毒瘤的  clion  不仅要配置c++ 环境  还要走cmake  等一堆东西 ...

  6. 梯度消失、梯度爆炸以及Kaggle房价预测

    梯度消失.梯度爆炸以及Kaggle房价预测 梯度消失和梯度爆炸 考虑到环境因素的其他问题 Kaggle房价预测 梯度消失和梯度爆炸 深度模型有关数值稳定性的典型问题是消失(vanishing)和爆炸( ...

  7. UML-如何进行面向对象设计?

    1.开发者如何设计对象? 1).直接编码 2).uml图,然后编码 3).uml图,不编码 绘图要轻量的 2.并行创建若干模型 如:5分钟画交互图,5分钟画类图.反复交替 3.选择什么样的UML CA ...

  8. centos 部署WGCLOUD

    服务端: 一.安装jdk 1.查看安装配置 jdk: 命令:java -version   2.查看系统是否自带 jdk rpm -qa |grep java rpm -qa |grep jdk rp ...

  9. Python—使用列表构造栈数据结构

    class Stack(object): """ 使用列表实现栈 """ def __init__(self): self.stack = ...

  10. Java中:>>>和>>区别

    >>>表示不带符号向右移动二进制数,移动后前面统统补0:两个箭头表示带符号移动, 没有<<<这种运算符,因为左移都是补零,没有正负数的区别. 如 -12 的二进制为 ...