首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何自动将主机的SSH公钥迁移到基于Puppet的Vagrant虚拟机

自动将主机的SSH公钥迁移到基于Puppet的Vagrant虚拟机可以通过以下步骤实现:

  1. 生成SSH密钥对:在主机上使用ssh-keygen命令生成SSH密钥对,包括公钥(id_rsa.pub)和私钥(id_rsa)。
  2. 将公钥添加到虚拟机的authorized_keys文件中:在Vagrantfile中添加以下配置,将主机的公钥自动添加到虚拟机的authorized_keys文件中。
代码语言:ruby
复制
config.vm.provision "shell", inline: <<-SHELL
  echo '添加主机公钥到authorized_keys文件'
  echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDL...' >> /home/vagrant/.ssh/authorized_keys
SHELL
  1. 使用Puppet配置SSH服务:在Puppet的配置文件中,可以使用ssh_authorized_key资源来管理authorized_keys文件。例如,创建一个名为ssh_keys.pp的Puppet模块,内容如下:
代码语言:puppet
复制
class ssh_keys {
  ssh_authorized_key { 'vagrant':
    user      => 'vagrant',
    type      => 'ssh-rsa',
    key       => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDL...',
    ensure    => present,
    require   => File['/home/vagrant/.ssh'],
  }
}
  1. 在Vagrantfile中引用Puppet模块:在Vagrantfile中添加以下配置,引用上一步创建的Puppet模块。
代码语言:ruby
复制
config.vm.provision "puppet" do |puppet|
  puppet.manifests_path = "manifests"
  puppet.manifest_file  = "site.pp"
  puppet.module_path    = "modules"
end
  1. 启动Vagrant虚拟机:在命令行中执行vagrant up命令启动Vagrant虚拟机,并自动执行Puppet配置。

这样,当Vagrant虚拟机启动时,会自动将主机的SSH公钥迁移到虚拟机中,实现了自动化的过程。

推荐的腾讯云相关产品:腾讯云虚拟机(CVM)。

产品介绍链接地址:https://cloud.tencent.com/product/cvm

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Ubuntu Server 第七章 远程管理

,生成两个文件id_rsa(私钥)、id_rsa.pub()。...#复制文件到SSH服务端 ssh-copy-id -i ~/.ssh/id_rsa.pub remote_username@remote_ip #指定文件拷贝,同上,服务端在.ssh下会新建文件...基于puppet ,可实现自动化重复任务、快速部署关键性应用以及在本地或云端完成主动管理变更和快速扩展架构规模等。 遵循GPL 协议(2.7.0-), 基于 ruby语言开发。...余总车上不上 参考链接 Linux scp命令 Xshell配置ssh免密码登录-密钥(Public key) Linux有问必答:如何在Linux上检查SSH版本 sshd_config配置详解...SSH隧道与端口转发及内网穿透 ssh隧道妙用 利用 ssh 用户配置文件 config 管理 ssh 会话 自动化运维工具——puppet详解(一)

2K20

使用Vagrant在你电脑上构建独立虚拟开发环境

安装 首先你要在你个人计算机(在虚拟化术语中又称主机)上安装VirtualBox和Vagrant。下面要在你计算机上创建虚拟机称为客户机。...登录到客户机 在基于UNIXMac上,使用SSH到客户机非常简单:只需使用以下命令: $ vagrant ssh 但在Windows上,这可能就有点困难了,因为它没有原生SSH客户端,译者用Mac...当一个客户机被创建时,用户vagrant以及它会一并添加到客户机上。...该用户私钥在主机上可用,可以使用命令“vagrant ssh-config ”查看路径和 SSHD 在客户机上运行端口(SSH客户端应连接端口)。...但是,如果您想将Vagrant用作开发环境或者自动化部署,那就需要了解上述简单配置步骤之外东西来为你推出基于Vagrant解决方案做理论支撑。

1.2K120
  • 自动化运维之Ansible服务部署详述

    一般会把自动化运维工具划分为两类:一类是需要使用代理工具,也就是基于专用ABem程序来完成管理功能,如: Puppet、Func、 Zabbix等;另外一类是不需要配置代理工具,可以直接基于SSH...除支持使用ssh连接被管理主机外, Ansible还支持其他连接方式,所以需要有连接插件各个主机用连接插件连接到 Ansible。...在最新版本ansible 2.7.0中,在没有推送形成密钥对情况下,无法使用ping模块ping通情况下,很难用authorized_key模块去推送。...所以我更改了下shell脚本,这样就可以在无法用ping模块ping通情况下直接实现批量推送形成密钥对。...//查看下已经记录在SSH协议主机,不做任何修改操作 (2).编写shell脚本实现批量推送 [root@01 .ssh]# vim ~/.ssh/pushssh.sh

    1.2K20

    VagrantSSH连接小技巧

    vagrant 默认是使用用户名和密钥登陆,之所以在vagrantfile目录输入vagrant ssh可以登陆,是因为vagtant创建虚拟机时候生成了非对称加密公私钥,上传到了虚拟机,私钥保存在宿主机中...查看私钥地址,我们使用ssh连接试一下,我这里已经创建好了一台虚拟机并处于运行状态。...Last login: Mon Jun 20 06:39:45 2022 from 10.0.2.2 vagrant@swarm4:~$ ssh小技巧 如何愉快使用ssh登陆虚拟机呢?...找到宿主机用户目录下面的.ssh目录,我是在这里C:\Users\Administrator\.ssh,新建config.txt文件,把vagrant ssh-config输入配置复制粘贴到config.txt...(之前指定Host) Administrator@ADMINIS-AL9GNP3 MINGW64 /e/code/test/vm/data2 $ ssh vagrant-ssh Welcome to

    1.3K10

    DevOps工具介绍连载(10)——Vagrant

    Vagrant 是为了方便实现虚拟化环境而设计,使用Ruby 开发,基于 VirtualBox 等虚拟机管理软件接口,提供了一个可配置、轻量级便携式虚拟开发环境。...为了实现 Vagrant 魔力,Vagrant 站在了巨人肩膀上。虚拟机配置基于 VirtualBox,VMware,AWS 或者其他提供商。...然后一些配置工具,比如 shell 脚本,Chef 或者 Puppet 可以自动化地在虚拟机安装并配置软件。...vagrant up 启动虚拟机基于 box 文件,因此在启动虚拟机前必须得把 box 文件准备好。.... 5.启动虚拟机 虚拟机启动命令:vagrant up 启动虚拟机时会自动当前目录(即 Vagrantfile 文件所在目录),和虚拟机 /vagrant 目录共享。

    1.2K30

    使用vagrant搭建验证环境

    Vagrant是用来管理虚拟机,如VirtualBox、VMware、AWS等,主要好处是可以提供一个可配置、可移植和复用软件环境,可以使用shell、chef、puppet等工具部署。...vagrant还提供多种机制宿主机一些目录同步到虚拟机中,平时用得比较多就是它默认机制: Vagrant.configure("2") do |config| # other config...snapshot list # 删除虚拟机某个快照 vagrant snapshot delete ${snapshotName} # 用ssh连接虚拟机 vagrant ssh # 输出虚拟机SSH...后面为了自动化实施,我们用了ansible之类工具,操作步骤都写进ansible脚本中。ansbile方案确实解决了很大问题,但失败率还是有些高,原因是待部署虚拟机状态不统一。...而vagrant直接待部署虚拟机也统一了,本身也支持用shell脚本、ansible脚本操作步骤都记录下来。

    85420

    Vagrant入门

    它使得我们可以一次性地、自动创建多个环境相同虚拟机,对于软件开发和测试尤其有用。本文我们将以Virtualbox为例,看看Vagrant基本使用。...: vagrant ssh 此时vagrant将使用默认用户vagrant以及预设SSH密钥键值对直接登录虚拟机。...关闭虚拟机vagrant halt 删除虚拟机vagrant destroy 请注意,vagrant destroy只会删除虚拟机本身,也即你在Virtualbox看不到该虚拟机,但是不会删除该虚拟机所使用...Vagrant提供多种方式对虚拟机进行Provision,包括Shell、Chef、Puppet和Ansible等。...config.vm.provider "vmware_fusion" do |v, override| override.vm.box = "precise64_fusion" end end 在下一篇中,我们讲到如何创建自己

    43820

    VAGRANT 启动并运行起来

    这篇文章介绍Vagrant中一些相当酷事情,比如: 在你机器中使用PHP5.4版本LAMP。 如何在你虚拟机中便捷访问数据库。...如何自动更新你hostfile,使用URL引用虚拟服务器(developing on http://localhost:8080 versus http://myprojectname.local)。...这在使用Cookbooks 或Puppet移除或添加东西时很有效果. vagrant ssh vagrant ssh所有公共文件夹中操作都会同步到虚拟环境,但如果需要直接操作可使用该命令. vagrant...ssh-config vagrant ssh-config这个显示连接到虚拟环境所有配置项信息....本地开发,方便数据库连接, 使用 Chef 或 Puppet 配置管理虚拟机配置, 以及统一管理开发环境相关配置.它致命优点就是,可以直接环境配置直接克隆到各种环境上,不论是开发环境或是生产环境

    1.1K20

    构建虚拟化开发环境

    使用虚拟化开发环境,开发人员在本机可以使用自己喜欢或者顺手OS(Windows、Linux、Mac OS等),而程序是运行在虚拟机中,迁移到生产环境可以避免环境不兼容导致莫名错误。...使用vagrant vagrant是一个用Ruby开发工具,封装了VirtualBox一些命令,它简化了virtualbox虚拟机操作,增加了自动化部署软件puppet/chef支持 通过vagrant.../vagrant 这个目录是自动映射,被映射到e:\workspace\devel_env 8....安装一些常用软件和模块 可以通过puppet,也可以手动安装 本机e:\workspace\devel_env会被映射到虚拟机/vagrant目录下,所以可以把待安装文件包放到e:\workspace...项目中使用 1. 项目中代码和数据放到映射目录中,这样,无论本机还是虚拟机内操作,文件都是一致; 也方便项目迁移部署,直接本机相关目录打包,放到生产环境服务器上 2.

    81220

    这次,千辛万苦搭好虚拟机终于不用重头来过了!

    vagrant是用来管理虚拟机,如VirtualBox、VMware、AWS等,主要好处是可以提供一个可配置、可移植和复用软件环境,可以使用shell、chef、puppet等工具部署。...,我们用得最多就是虚拟机配置config.vm和ssh配置config.ssh,这个官方文档里每个配置项都详细描述了,按描述配置就可以了,当然对于虚拟机ssh本身有哪些配置可以调整提前要了解。...vagrant还提供多种机制宿主机一些目录同步到虚拟机中,平时用得比较多就是它默认机制: Vagrantfile文件写好后,就可以以此为基础操作虚拟机了: 这样操作虚拟机真的是很方便啊。...后面为了自动化实施,我们用了ansible之类工具,操作步骤都写进ansible脚本中。ansbile方案确实解决了很大问题,但失败率还是有些高,原因是待部署虚拟机状态不统一。...而vagrant直接待部署虚拟机也统一了,本身也支持用shell脚本、ansible脚本操作步骤都记录下来。

    72810

    Vagrant详细教程

    Vagrant 安装程序会自动把安装路径加入到 PATH 环境变量,所以,这时候可以通过命令行执行 vagrant version 检查是否安装成功: 三、下载虚拟机镜像   使用 Vagrant...特别提醒,Vagrantfile 文件名是固定写法,大小写也要完全一样,修改了就不认识了  七、自定义配置Vagrantfile   下面我针对这份默认 Vagrantfile 内容,逐个讲解其中配置含义和如何根据实际情况修改...1、配置端口转发     端口转发(Port forward)又叫端口映射,就是把虚机某个端口,映射到宿主机端口上。这样就能在宿主机上访问到虚拟机服务。   ...例如启动虚机时,默认 22 (guest) => 2222 (host) (adapter 1) 就是把虚机 SSH 服务端口(22)映射到宿主机 2222 端口,这样直接在宿主机通过 ssh 客户端访问..."private_network", ip: "192.168.33.10"   如果这个网段主机网络在 VirtualBox 中不存在,Vagrant 会在启动虚机时自动创建。

    91411

    如何快速学习Ansible使用

    ansible是一种自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)优点,实现批量系统配置、批量程序部署、批量运行命令等功能...被管理主机设置 Inventory 文件用来定义你要管理主机。其默认位置在 /etc/ansible/hosts ,如果不保存在默认位置,也可通过-i选项指定。被管理机器可以通过其IP或域名指定。...name={{ item }}中item值,即,依次with_items中值带入到{{item}}中 。...复制本机,即,.sshid_rsa.pub中内容。...使用ssh进入同事虚拟机内,复制本机放入对方.ssh文件夹authorized_keys文件中(如果对方没有.ssh文件夹,则首先建个文件夹); 执行ansible -i hosts company

    1.2K10

    vagrant搭建centos环境前言环境准备安装修改配置文件启动与连接常用vagrant命令清空重新导入镜像配置文件 Vagrantfile填坑记录

    vagrant init 会自动生成Vagrantfile配置文件 修改配置文件 设置box名称 box名称须与上面命令指定box名一致 config.vm.box = "centos" 端口转发 config.vm.network..." end 启动与连接 连接vagrant虚拟机有两种方式: 账号密码,两者均为 vagrant ssh key, 可通过 ssh-config 查看私钥路径 ?...查看ssh-config 可以用vagrant默认生成key,也可以将自己私钥替换到 IdentityFile 指定文件,连接虚拟机后再将放到虚拟机 ~/.ssh/authorized_keys...启动虚拟机 ☁ centos vagrant up 连接进入虚拟机 ☁ centos vagrant ssh 默认共享挂载目录:/home/vagrant 常用vagrant命令...vagrant up 启动 vagrant ssh 进入虚拟机 vagrant halt 关机 vagrant reload 重启 导出与导入 ☁ centos vagrant package --

    1.2K30

    『中级篇』Vagrant在本地搭建多节点K8S集群(65)

    "dev" do |dev| # 设置虚拟机Box dev.vm.box = "centos7" # 设置虚拟机主机名 dev.vm.hostname = "dev...图方便我已经把不安全添加到集群机器/root/.ssh/authorizedkeys中了, 为了让root能从dev远程登录到集群机器,需要把insecureprivatekey弄到dev~/...node3 # 可以直接vagrant up来启动所有机器 进入dev虚拟主机 vagrant ssh dev #这一步目的是把压缩包直接放在vagrant共享目录下解压, #结果在最后报软连接错误...,直接放入虚拟机自身目录就不会爆这个错误这个很重要 cp -r deployk8s-master deployk8s cd deployk8s 进入dev虚拟主机通过SecureCRT 找到insecureprivatekey...#这个id_rsa权限是644,需要改为600,在dev机中执行: chmod 600 ~/.ssh/id_rsa 进入dev虚拟主机 vagrant ssh dev #这一步目的是把压缩包直接放在

    76630

    使用 Jenkins + Ansible 实现自动化部署 Nginx

    本文介绍如何使用 Jenkins + Ansible 实现对 Nginx 自动化部署。...使用 Vagrant 启动一台虚拟机,用于部署 Nginx。使用 Vagrant 是可选,读者可以使用 VirtualBox 启动一个虚拟机。使用 Vagrant 完全是为了自动化搭建实验环境。...以下是整个实验环境架构图 ? 注意,图中 5123 80 代表宿主机 5123 端口请求转发到虚拟机 80 端口。...Vagrant虚拟机管理工具,通过它,我们可以使用文本来定义、管理虚拟机。 Ansible:自动化运维工具 Docker Compose:它是一个用于定义和运行多容器 Docker 应用程序工具。...目前主机连接信息(SSH 密码)是明文写在 host_vars/192.168.52.10 文件中,存在安全风险。 没有介绍如何当 Java 应用部署时,如何自动更新 Nginx 配置。

    3.6K30

    『中级篇』Vagrant在本地搭建多节点K8S集群(65)

    "dev" do |dev| # 设置虚拟机Box dev.vm.box = "centos7" # 设置虚拟机主机名 dev.vm.hostname = "dev...图方便我已经把不安全添加到集群机器/root/.ssh/authorized_keys中了, 为了让root能从dev远程登录到集群机器,需要把insecure_private_key弄到dev...node3 # 可以直接vagrant up来启动所有机器 进入dev虚拟主机vagrant ssh dev #这一步目的是把压缩包直接放在vagrant共享目录下解压, #结果在最后报软连接错误...,直接放入虚拟机自身目录就不会爆这个错误这个很重要 cp -r deployk8s-master deployk8s cd deployk8s 进入dev虚拟主机通过SecureCRT 找到insecure_private_key...#这个id_rsa权限是644,需要改为600,在dev机中执行: chmod 600 ~/.ssh/id_rsa 进入dev虚拟主机vagrant ssh dev #这一步目的是把压缩包直接放在

    1.8K80

    安全运维中基线检查自动化之ansible工具巧用

    0x02 ansible介绍以及安装 Ansible是一款为类Unix系统开发自由开源配置和自动化工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、...step4:设置用于鉴权SSH密钥 主控端生成ssh公私钥,默认生成密钥保存在/root/.ssh文件夹下 [root@root tmp]# ssh-keygen 主控端向单个节点下发...主控端主机一台,安装在虚拟机可以在0x02step3保存快照。...●需要检查节点清单(确保开放ssh端口,不是默认22端口的话另分类出来这里暂不做考虑、节点root权限账号密码) 2.主控端需要批量下发 主控端通过ssh-keygen命令生成公私钥后,需要下发到节点才可实现主控端对节点控制...,0x02中是单个节点下发,并且需要人机交互键入节点ssh密码,显然不适合面对多个节点下发。

    2.5K31

    安装saltstack

    IT运维从诞生发展至今,自动化作为其重要属性之一已经不仅仅只是代替人工操作,更重要是深层探知和全局分析,关注是在当前条件下如何实现性能与服务最优化,同时保障投资收益最大化。...因此,IT运维自动化是一组静态设备结构转化为根据IT服务需求动态弹性响应策略,目的就是实现IT运维质量,降低成本。可以说自动化一定是IT运维最高层面的重要属性之一,但不是全部。...常见自动化运维工具: Puppet (www.puppetlabs.com)基于rubby开发,c/s架构,支持多平台,可管理配置文件、用户、cron任务、软件包、系统服务等。...可以使用salt-ssh远程执行,类似ansible,也可以使用c/s模式,下面我们讲述该种模式使用,因为salt-ssh很少用到,c/s模式是最常用。...[root@server ~]# ls /etc/salt/pki/master/minions # 接收会存放在这个目录下 client [root@server ~]# 客户端也会接收到服务端传过去

    73230

    Linux:SSH基于密钥身份验证

    它还展示了如何使用基于密钥身份验证来改进 SSH 功能,以实现更好远程管理和与自动化工具集成。 SSH 通过加密身份验证和网络流量来帮助减轻窃听攻击。...您将在管理工作站(管理员本地计算机)上生成一个-私钥对,然后复制到一个或多个远程服务器。 在连接尝试期间,远程服务器使用管理员工作站加密一条消息挑战。...文件驻留在远程主机 ~/.ssh/authorized_users 文件中。 通过键入 ssh admin03@server07(替换您自己凭据和主机名)来测试连接。...以下是一些可以使用 SSH 连接自动化配置管理工具: Ansible Chef Puppet 实现基于密钥身份验证意味着可以在这些配置管理工具中定义远程连接,并且它们将在不暂停以手动输入密码情况下运行...该过程前两个步骤是: 使用 ssh-keygen 命令在本地系统上生成密钥对。 使用 ssh-copy-id 命令复制到每个远程服务器。

    84490
    领券