搭建本地git到服务器

来源:互联网 发布:淘宝访问受限怎么解决 编辑:程序博客网 时间:2024/06/04 19:34
1. 使用ssh连接上自己的云服务器,然后创建一个裸仓库 


           git init --bare wen.git
 
        2. 创建用户 
           
           useradd wen
           echo 123456 | passwd --stdin wen


           chown -R wen:wen/usr/local/nginx/html/gaopenggui/git/wen.git


        3. 到本地客户端clone 
           git clone wen@47.93.47.24:/usr/local/nginx/html/gaopenggui/git/wen.git


        到这一步基本就可以了,但是不安全,因为weixin这个用户可以直接使用ssh登录


        4. 在本地客户端使用ssh生成公钥和私钥
           ssh-keygen -t rsa -C "1411942704@qq.com"


        5. 到你本机clone的目录下去设置下git的全局账号
           git config --global user.name 'sss'
           git config --global user.email "1411942704@qq.com"


        6. 到服务器上修改sshd的配置文件,开启rsa认证


           vim /etc/ssh/sshd_config


           RSAAuthentication yes
       PubkeyAuthentication yes
           AuthorizedKeysFile      .ssh/authorized_keys


        7. 到服务器weixin这个账号的家目录下创建.ssh的文件夹,在其中创建authorized_keys


           cd /home/wen
           mkdir .ssh
           cd .ssh 
   touch authorized_keys


         8. 给权限


           chown -R wen:wen .ssh




         9. 复制客户端.ssh/id_rsa.pub中的内容到authorized_keys这个文件中


            ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuXuEE6gA5zJquOFDY4WiCEWvApU4b57K+V6KSATa2SYc/rcGd0O1z37TKWsDrVVdvD4q2TLj4pws/s8qcAccOQAfS/Ndn0Wj6O2Fp4t2hwdBnsQOOne713h+I/cYKqXSGnKnhCcEdsPIgna6gJmFBsG3bqgSrJNH/OMfCFQoWhY0LhYUsd0ntd++1ZAsW5tcOZrn3zYx6Gsv46yCRKH3A6jm8yRGJg23sbw2MgWk6YLMTeq+yBlniR8lUmQDFx9s6Ex7ZV45ah9JPhJFgy3vZtFVVt2nCOu/g+dvC6zmSf74vkdGO30fUXtbGBEMet50Nr0Y5yUFSdom7CQvAqZUKw== 476837464@qq.com


         10. 修改/etc/passwd这个文件中weixin用户的登录脚本
          /bin/git-shell


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


         11.在/var/www/下面创建weixin目录
            git clone wen@127.0.0.1:/usr/local/nginx/html/gaopenggui/git/wen.git




         12. 测试即可实现无密码登录而且weixin用户不能直接使用ssh进行远程连接,但可以推送git内容


13.测试git push 如果失败,在服务器端的这个平级wen.git

sudo chown -R wen:wen wen.git


钩子的设置

// hook如何让git自动将内容checkout到对应的目录??这一步很重要
// hooks 钩子
// 钩子的原理
// post-update:提交更新之后要干什么事情 shell脚本


// 实现自动化代码不熟的步骤:
// 1.进入对应的git仓库
cd wen.git/hooks
// 2.修改文件名
mv post-update.sample post-update
// 3.编辑post-update中内容
unset GIT_INDEX_FILE
git --work-tree=/usr/local/nginx/html/gaopenggui/git/wen --git-dir=/usr/local/nginx/html/gaopenggui/git/wen.git checkout -f
// 解释:
// --work-tree:工作空间呢,实际放饭吗的空间,在/usr/local/nginx/html/gaopenggui/git/wen
// --git-dir : git仓库空间,在/usr/local/nginx/html/gaopenggui/git/wen.git 一定是以.git结尾的文件夹
//钩子如果用不了,查看权限,只能是用户权限,不能是root用户

原创粉丝点击