新机器下git clone代码新思路

摘要:
新机器下gitclone代码新思路背景得到一台新的服务器,需要在这台机器上部署业务代码,常规做法就是通过ssh-keygen生成密钥公钥将公钥配置在gitlab上通过git协议来clone代码这三步骤中还涉及到首次访问gitlab,需要输入yes来确认,如下图:如果不想人工干预,或者到时批量机器,后者docker中使用呢?
新机器下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
明显这种方式比我之前的方式高级多了

免责声明:文章转载自《新机器下git clone代码新思路》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇layer弹出层不居中解决方案,仅显示遮罩,没有弹窗spark的standalone模式下:查看任务结束后的历史记录下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SSH 远程登录以及免密登录

一、SSH远程登录的原理(基于口令)1、客户端向服务器发送远程请求如bigdata3登录到bigdata4:2、服务器接收到请求后,将自己的主机的公钥发送给客户端,公钥用于加密 3、客户端将主机发送来的公钥通过hash算法得出主机公钥的公钥指纹,核对公钥指纹是否正确,以确认当前请求连接的的是我们想要登录的主机。在bigdata4上查看公钥:ssh-keyg...

docker-compose 创建轻量级git服务——gitea

docker-compose.yml version: '2'services: web: image: gitea/gitea:1.6container_name: gitea_web hostname: gitea.trio.ai environment: - USER_UID=1000 - USER...

图解git基本使用

图解Git 此页图解git中的最常用命令。如果你稍微理解git的工作原理,这篇文章能够让你理解的更透彻。 如果你想知道这个站点怎样产生,请前往GitHub repository。 git配置文件 [user] name = zhaoyingchao email = zyc@alibaba-inc.com [alias] st = status -s...

git 通过 SublimeMerge 处理冲突

在使用 Git 的时候,如果是多个小伙伴开发,那么如果同时修改一个文件将出现冲突。也就是在自动合并的时候不知道使用哪个代码才对,此时就需要合并工具的协助。我找了很久发现 SublimeMerge 是界面最好看的,同时快捷键和 SublimeText 一样多也好用的工具 先通过官网下载安装 SublimeMerge 记住安装的路径 如我的 SublimeMe...

Linux 之不同运维人员共用root 账户权限审计

一、为什么?   在中小型企业,公司不同运维人员基本都是以root 账户进行服务器的登陆管理,缺少了账户权限审计制度。不出问题还好,出了问题,就很难找出源头。   这里介绍下,如何利用编译bash 使不同的客户端在使用root 登陆服务器使,记录各自的操作,并且可以在结合ELK 日志分析系统,来收集登陆操作日志 二、环境   服务器:centos 6.5...

Git简要开发流程

本教程以 产品中心 项目为案例 git clone 指定分支和切换分支1. git clone 指定分支:git clone -b 分支名称 项目地址  假设分支名称为test,则:git clone -b test 项目地址2. git命令查看当前分支:git branch3. git命令切换分支:git checkout 分支名 -----------...