zoukankan      html  css  js  c++  java
  • centos 环境搭建git 服务器

    首先yum安装git

    yum install git 
    

    查看git的版本

    sudo git --version
    

    服务器端创建一个git 用户,专门来处理git服务,并为git用户设置密码

    查看是否有git的用户

    id git
    

    添加git用户

    useradd git
    

    为git用户分配密码

    passwd git
    

      

    创建git仓库

    sudo mkdir -p /home/git/project.git

    git初始化仓库

    sudo git init --bare /home/git/project.git

    修改权限

    chown -R git:git project.git/
    

     

    客户端克隆代码

    sudo git clone git@your ip :/home/git/project.git/
    

    当第一次连接到目标 Git 服务器时会得到一个提示:

    The authenticity of host '192.168.56.101 (192.168.56.101)' can't be established.
    RSA key fingerprint is SHA256:Ve6WV/SCA059EqoUOzbFoZdfmMh3B259nigfmvdadqQ.
    Are you sure you want to continue connecting (yes/no)? 

    选择yes:

    Warning: Permanently added '192.168.56.101' (RSA) to the list of known hosts.

    客户端创建ssh公钥和私钥

    ssh-keygen -t rsa -C "931285354@qq.com"

    The key fingerprint is:

    SHA256:hNE8psTlENbSbKPCswDfSafqWubaz8v8vzYD+pAbqGY 943016731@qq.com

    The key's randomart image is:

    +---[RSA 2048]----+

    |     .=O.        |

    |.   ..==@        |

    | o + =.*oo       |

    |  o B o.         |

    |   o +  S        |

    |  .....          |

    | .+ +. .         |

    | E.+.+  +        |

    |*oo.B+ooo+       |

    +----[SHA256]-----+

     

    在/etc/ssh 打开sshd_config 并取消以下三行注释

    RSAAuthentication yes

    PubkeyAuthentication yes

     

    # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2

    # but this is overridden so installations will only check .ssh/authorized_keys

    AuthorizedKeysFile      .ssh/authorized_keys

    保存重启ssh服务

    systemctl restart sshd.service
    

    由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys

    在 /home/git/ 下创建目录 .ssh

    cd /home/git
    
    sudo mkdir .ssh
    
    chown -R git:git .ssh
    

    将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件

    ssh git@xxx.xxx.xxx.xxx 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
    

    回到服务器端,查看 .ssh 下是否存在 authorized_keys 文件:

     
    [root@localhost git]# cd .ssh
    [root@localhost .ssh]# ll
    总用量 4
    -rw-rw-r--. 1 git git 398 8月  28 20:08 authorized_keys

    重要:

    修改 .ssh 目录的权限为 700

    修改 .ssh/authorized_keys 文件的权限为 600

    [root@localhost git]# chmod 700 .ssh
    [root@localhost git]# cd .ssh
    [root@localhost .ssh]# chmod 600 authorized_keys 

     

    禁止 git 用户 ssh 登录服务器

    之前在服务器端创建的 git 用户不允许 ssh 登录服务器

    编辑 /etc/passwd

    找到:

    git:x:502:504::/home/git:/bin/bash

    修改为

    git:x:502:504::/home/git:/bin/git-shell

    此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统。

  • 相关阅读:
    获取最近6个月的年月(yyyyMM,不包括当月)
    checkbox与<c:forEach>在开发中遇到的问题记录
    MyBatis开发-->增删改
    MyBatis开发-->接口方式编程
    MyBatis开发-->入门
    android-async-http框架之与网络进行数据交互
    android-async-http框架之与服务器进行数据交互
    jQuery截取{}里的字符串及获取json里的值
    SSH整合之三:添加Hibernate环境且使之与Spring进行整合
    angular源码剖析之Provider系列--QProvider
  • 原文地址:https://www.cnblogs.com/zhoupufelix/p/7537816.html
Copyright © 2011-2022 走看看