zoukankan      html  css  js  c++  java
  • 在服务器搭建git服务器

    服务端操作

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

    1
    2
    3
    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
    2
    3
    4
    5
    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
    2
    3
    4
    5
    6
    7
    8
    $ 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登录”导致的,则需要取消这个操作

    参考

  • 相关阅读:
    仪仗队
    疫情控制
    Code
    距离咨询
    舒适的路线
    桐桐的糖果计划
    跑路
    最短路计数
    骑马修栅栏
    搭桥
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12375886.html
Copyright © 2011-2022 走看看