kvm虚拟机磁盘镜像加密

一、qcow2的aes加密

低版本的qemu能够支持对qcow2文件进行aes加密的方式,例如对一个已经存在的磁盘文件test.qcow2,可以将其转换为经过加密的qcow2文件。

qemu-img convert -O qcow2 --object secret,id=sec0,data=123456 -o encryption=on,encrypt.key-secret=sec0 -f qcow2 test.qcow2 fw-encry.qcow2

但是这种方式在现在版本的qemu中已经无法支持了,如果将这个磁盘配置到虚拟机中,启动虚拟机会报出错误,不建议使用这种加密方式。

二、使用luks对磁盘进行加密

创建一个luks的加密磁盘

qemu-img create -f luks fw.luks 1G --object secret,data=123456,id=sec0 -o key-secret=sec0

创建一个密钥配置文件

<secret ephemeral='no' private='yes'>
<description>Super secret name of my first puppy</description>
<usage type='volume'><volume>/home/fw.luks</volume>
</usage>
</secret>

根据配置文件生成密钥uuid文件

virsh secret-define secret.xml

生成密钥

printf %s "123456" | base64

virsh secret-set-value dc057b2b-6a7d-4dba-b76e-37a458448765 $MYSECRET

密钥和密钥uuid文件存放在/etc/libvirt/secrets目录中

修改虚拟机的配置文件

<disk type='file' device='disk'><driver name='qemu' type='raw'/><source file='/home/fw.luks'/><target dev='vdc' bus='virtio'/><encryption format='luks' engine='qemu'><secret type='passphrase' uuid='9ad18f71-2cc4-4e41-a613-15e4ac4fd5fb'/></encryption><address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
</disk>

这样启动虚拟机后可以直接使用经过luks加密的磁盘,如果在虚拟机的配置文件中去掉了encryption字段,那么在虚拟机内部将无法直接使用加密磁盘,除非强制进行格式化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/813054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(学习日记)2024.04.18:UCOSIII第四十六节:CPU利用率及栈检测统计

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

SQL explain 显示子查询A类型为ALL怎么优化

当 SQL EXPLAIN 显示子查询 A 的类型为 ALL 时&#xff0c;这意味着数据库系统正在执行全表扫描&#xff0c;而不是使用索引来执行子查询。全表扫描可能会导致性能下降&#xff0c;特别是在大型表上。 为了优化这种情况&#xff0c;您可以考虑以下几点&#xff1a; 1. **索引…

【Linux学习笔记】安卓运行C可执行文件No such file or directory

文章目录 开发环境运行失败现象解决办法方法一&#xff1a;使用静态库方法二&#xff1a;使用动态库创建lib查找依赖库复制需要注意的事情 开发环境 开发板&#xff1a;正点原子RK3568开发板安卓版本&#xff1a;11可执行程序命名&#xff1a;ledApp需加载模块&#xff1a;dts…

Redis的过期策略与内存淘汰机制原理及实践

Redis作为高性能的键值存储系统&#xff0c;其对数据过期与内存管理的设计直接影响到系统的性能与资源利用率。本文将以生动的比喻、通俗的语言&#xff0c;深入剖析Redis的过期策略与内存淘汰原理&#xff0c;助您全面理解数据在Redis中的生命周期管理艺术。 一、Redis过期策…

在线程间共享数据---互斥量

在线程间共享数据—互斥量 std::mutex std::mutex 是C标准库中 <mutex> 头文件中定义的一个类&#xff0c;它是实现多线程同步的基础工具&#xff0c;主要用于保护共享资源&#xff0c;防止多个线程同时访问同一资源造成的数据竞争&#xff08;race condition&#xff0…

Ubuntu安装配置FTP

1、安装服务端 sudo apt-get install vsftpd service vsftpd start service vsftpd stop service vsftpd restart 2、创建目录、用户 mkdir -p /home/xxxx sudo useradd -g ftp -d /home/vsftp -m angler 命令一&#xff1a;这种命令会在登录界面显示用户名 sudo …

vue3大事件项目3

弹框验证 先准备变量: const formModel ref({ cate_name: , cate_alias: }) 还有规则&#xff1a; const rules { cate_name: [ { required: true, message: please input name, trigger: blur }, { pattern: /^\S{1,10}$/, message: must be 1-10, trigger: blur } ], …

Java 基于微信小程序的智能停车场管理小程序

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

Rust腐蚀服务器常用参数设定详解

Rust腐蚀服务器常用参数设定详解 大家好我是艾西&#xff0c;一个做服务器租用的网络架构师上期我们分享了rust腐蚀服务器的windows系统搭建方式&#xff0c;其中启动服务器bat参数因为涉及的东西比较多所以想通过这篇文章给大家做一下详细的分享。 &#xff08;注本文中xxxx…

浅述.Net中的Hash算法(顺带对称、非对称算法)

【写在前面】 对称加密算法(只有一个私钥&#xff0c;比如DES【不推荐】、AES)&#xff1b; 非对称加密算法&#xff08;公钥与私钥&#xff0c;比如RSA&#xff09;&#xff1b; Hash算法也称为散列函数算法&#xff0c;任意长度的数据都转换为固定长度的字符串&#xff08…

【自然语言处理八-transformer实现翻译任务-一(输入)】

自然语言处理八-transformer实现翻译任务-一&#xff08;输入&#xff09; transformer架构数据处理部分模型的输入数据(图中inputs outputs outputs_probilities对应的label)以处理英中翻译数据集为例的代码 positional encoding 位置嵌入代码 鉴于transfomer的重要性&#xf…

小猫爬山(c++题解)

题目描述 Freda和rainbow饲养了N只小猫&#xff0c;这天&#xff0c;小猫们要去爬山。经历了千辛万苦&#xff0c;小猫们终于爬上了山顶&#xff0c;但是疲倦的它们再也不想徒步走下山了&#xff08;呜咕>_<&#xff09;。 Freda和rainbow只好花钱让它们坐索道下山。索…

1.汉诺塔问题

C力扣 汉诺塔 class Solution { public:void hanota(vector<int>& a, vector<int>& b, vector<int>& c) {dfs(a,b,c,a.size());}void dfs(vector<int>& a, vector<int>& b, vector<int>& c,int n){if(n1){c.push…

阻塞队列和生产消费模型

阻塞队列 阻塞队列的概念 队列相信我们已经不陌生了 之前也学过很多队列 比如: 普通队列 和 优先级队列 两种 这两种队列都是线程不安全的 而我们讲的阻塞队列 刚好可以解决线程安全问题 也是先进先出 并且带有阻塞功能. 阻塞功能是怎么回事呢 就是如果入队的时候阻塞队列为…

rabbitmq安装rabbitmq-delayed-message-exchange插件

下载地址&#xff1a;Community Plugins | RabbitMQ 上传到rabbitmq安装目录的/plugins目录下 我的是/usr/lcoal/rabbitmq/plugins/ 直接安装 [rootk8s-node1 rabbitmq]# rabbitmq-plugins enable rabbitmq_delayed_message_exchange [rootk8s-node1 rabbitmq]# rabbitmq-pl…

pringboot2集成swagger2出现guava的FluentIterable方法不存在

错误信息 Description: An attempt was made to call a method that does not exist. The attempt was made from the following location: springfox.documentation.spring.web.scanners.ApiListingScanner.scan(ApiListingScanner.java:117) The following method did not ex…

《青少年成长管理2024》049 “成长目标:到哪儿了?”2/2

《青少年成长管理2024》049 “成长目标&#xff1a;到哪儿了&#xff1f;”2/2 六、规则和契约七、资源与欲望八、愚蠢与智慧九、奋勇争第一十、时代新节奏 本节摘要&#xff1a;当你来到这个世界&#xff0c;首先认识一下这是一个什么样的世界&#xff0c;你处于一个什么样的环…

c语言例题,求数组中最大值,99乘法口诀表

例题1&#xff1a;求出数组中最大的值 根据题意&#xff0c;我们知道的是需要从一个数组中找到一个最大的元素并且输出。那首先我们先建立一个数组&#xff0c;然后将一些不有序的整型元素放到数组中&#xff0c;然后再建立一个变量来存放数组中的第一个元素&#xff0c;通过一…

Linux学习 - 又双叒叕一个软件安装方法

Linux学习 - 又双叒叕一个软件安装方法 Conda包管理系统 Conda是一种通用包管理系统&#xff0c;旨在构建和管理任何语言的任何类型的软件。通常与Anaconda (集成了更多软件包&#xff0c;https://www.anaconda.com/download/#download)和Miniconda(只包含基本功能软件包, ht…

算法设计与分析实验报告c++实现(八皇后问题、连续邮资问题、卫兵布置问题、圆排列问题)

一、实验目的 1&#xff0e;加深学生对回溯法算法设计方法的基本思想、基本步骤、基本方法的理解与掌握&#xff1b; 2&#xff0e;提高学生利用课堂所学知识解决实际问题的能力&#xff1b; 3&#xff0e;提高学生综合应用所学知识解决实际问题的能力。 二、实验任务 用回溯…