zoukankan      html  css  js  c++  java
  • 新机器下git clone代码新思路

    新机器下git clone代码新思路

    背景

    得到一台新的服务器,需要在这台机器上部署业务代码,常规做法就是

    1. 通过ssh-keygen生成密钥公钥
    2. 将公钥配置在gitlab上
    3. 通过git协议来clone代码

    这三步骤中还涉及到首次访问gitlab,需要输入yes来确认,如下图:image.png


    如果不想人工干预,或者到时批量机器,后者docker中使用呢?
    我个人之前的做法是引入expect命令了,流程还是没有变动的,只是在出现交互需要的时候,可以自动输入对应的指令,今天在看同事的jenkins job的时候发现了一个更方便的方案

    方案

    1. 通过ssh-keyscan获取server的公钥,然后提前写入到known_hosts中,避免了首次访问server的确认
    2. 通过copy已经配置好的公钥密钥直接写入到新机器中

    实际操作如下:

    sudo mkdir ./ssh
    sudo touch ./ssh/known_hosts && sudo chmod 777 ./ssh/known_hosts
    sudo ssh-keyscan -t rsa gitlab.xxxx.com > ./ssh/known_hosts
    sudo cp $已经在gitlab配置的密钥 ./ssh/id_rsa
    


    这里需要注意的是权限问题,当你的~/.ssh目录的权限过于随意的话,git clone会如下提示:

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    Permissions 0666 for '/root/.ssh/id_rsa' are too open.
    It is required that your private key files are NOT accessible by others.
    This private key will be ignored.
    Load key "/root/.ssh/id_rsa": bad permissions
    
    


    所以要注意改变.ssh目录的权限,一般是设置为400权限,chmod -R 400 ~/.ssh


    明显这种方式比我之前的方式高级多了

  • 相关阅读:
    一个极好的ALV例子
    ABAP中读取文本文件(TXT DOCUMENT)并用ALV显示
    SMARTFORM报表程序设计(3)
    FOR ALL ENTRIES IN
    SMARTFORM报表程序设计(2)
    SMARTFORM报表程序设计(1)
    ABAP用FILE_OPEN_DIALOG打开多个文件后打印出名称
    LaTeX 表格的处理 [转]
    ubuntu安装deb,rpm安装包,tar.gz的方法 [转]
    OpenGL学习入门之VS2010环境配置 [转]
  • 原文地址:https://www.cnblogs.com/jwentest/p/12569013.html
Copyright © 2011-2022 走看看