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


    1. 创建git用户

        useradd git   

        passwd git 

    2. 建立一个ssh的访问控制文件,这个文件默认不存在的,需要自己手动添加,路径为 /home/git/.ssh/authorized_keys (这个文件的权限644

        这个文件的路径是在ssh服务器配置中指定的(/etc/ssh/sshd_config), 这个授权文件保存的是需要访问git服务器的客户端ssh key值。通过命令ssh-keygen -t rsa 即可生成.ssh目录及文件id_rsa和id_rsa.pub,将客户端id_rsa.pub文件中的内容拷贝到authorized_keys文件中即可。

         

    3.  在服务器上建立一个git库目录 如 /home/git/gitSrv , 在目录中初始化一个空库

            git init  --bare sample.git      --bare表明只用版本记录文件,没有工作区,没有实际保存的可读源文件。(裸仓库)

            裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后将这个文件的归属设置为git用户(如果已经是git用户的就不再操作了)

            chown -R git:git sampl.git 

       

    4. 将git用户的登录默认shell改成git-shell,使用管理员权限编辑/etc/passwd

        将git:x:1001:1001:,,,:/home/git:/bin/bash 改为:git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell  (git-shell是安装git时产生的,需要指定对应git-shell的路径,用户可以正常通过ssh使用git,但无法登录shell)

            

    备注:

        1. 生成ssh密钥: ssh-keygen -t rsa   建议使用默认的文件路径和无密码(直接两次回车)

        2. 生成的密钥传到git服务器上,可以使用scp命令

                scp localFile   remoteUserName@remoteIp:remoteDIrPath/remoteFileName 传递某个文件到远端

                scp remoteUser@remoteIp:remotePath  localPath  从远端下载某个文件到本地

                scp localDir -r   remoteUserName@remoteIp:remoteDIrPath  传递整个目录到远端

        3. ssh服务重启命令:

                centos7下  systemctl restart sshd.service

        4.  cat 向某个文件末尾追加信息并且主动换行。添加多个用户的rsa key值得时候可以使用 cat a.txt  >> b.txt 向b后添加a的内容

        5.  当配置完后使用ssh无法连接服务器,检查/etc/ssh/sshd_config文件下的如下配置项

            RSAAuthentication yes
            PubkeyAuthentication yes
            PasswordAuthentication yes

        6. git status中文乱序解决: git config --global core.quotepath false

        7. 如果团队过大,每个人 的权限都要放到authorized_keys中就有点麻烦了,这个时候使用gitolite来管理每个人的ssh公钥,

        并可以指定一些列的访问权限。

            https://github.com/sitaramc/gitolite

    参考:

        https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664

        https://blog.csdn.net/y472360651/article/details/82263545

        https://www.cnblogs.com/zhoug2020/p/5789041.html

        https://blog.csdn.net/u010597189/article/details/81284642

  • 相关阅读:
    GET POST区别
    http1.0 1.1 2.0区别
    分布式系统理论之Quorum机制
    MySQL解析过程、执行过程
    redis常见问题和解决方案
    Windows下安装Linux虚拟机的用途和好处
    ping,telnet,ssh命令的理解
    强化学习入门 第五讲 值函数逼近
    强化学习入门第四讲 时间差分方法
    强化学习基础 第三讲 蒙特卡罗方法
  • 原文地址:https://www.cnblogs.com/Zhangyq-yard/p/10992944.html
Copyright © 2011-2022 走看看