开发TEE的踩坑之配置PCCS

news2024/10/5 17:19:10

系统:Ubuntu20.04(双系统,非虚拟机)

  • 一、解决node.js的版本问题
  • 二、解决开启PCCS服务的问题
    • 1、解决开启PCCS服务
    • 2、解决访问本地的8081端口

本系列为笔者开发TEE(Trusted Execution Environment,可信执行环境)的踩坑文,给广大开发者分享自己的所谓的“经验”,希望对大家有帮助。

开发路线为:

  1. 装Ubuntu20.04的双系统(不展开,B站有很多教程)
  2. 配置SGX环境(前提是SGX机器,最好是SGX2)
  3. 配置PCCS(很蛋疼,英特尔官方github的步骤也未必行得通)
  4. 开发TEE(花的时间最多)

本篇文章分享配置PCCS的踩坑
笔者是在这篇文章的配置PCCS的基础上,结合chatGPT给出的解决方案去解决途中遇到的问题的。
部分读者可能会直接参考英特尔官方github的步骤来配置PCCS,但很明显,能特地搜这篇文章一定是遇到问题的,笔者猜测很可能是node.js版本的问题。并非笔者想黑,若按照他们官方给的步骤是无法顺利配置好PCCS的,而且官方回答issue给出的安装文档都是几年前的,甚至连Ubunt20.04的字眼都没出现过,最新的也就18.04(QAQ)
话不多说,配置PCCS的正确步骤如下:

一、解决node.js的版本问题

sudo su
apt-get install sgx-dcap-pccs

不出意外的话,一定会出意外的
安装了一堆东西之后,会出现以下关于node.js版本问题的报错
没错,就是node.js版本的问题

npm i nvm -g

在这里插入图片描述

cd /opt/intel/sgx-dcap-pccs
node -v

输出是v10.19.0

此时执行nvm install 18.17或者nvm list,输出都是如下

This is not the package you are looking for: please go to http://nvm.sh

执行

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

在这里插入图片描述
很显然,依然是nvm和node.js存在问题

source /home/<用户名>/.nvm/nvm.sh

再次执行

nvm list

不出意外应该是如下输出
在这里插入图片描述
再次执行

npm i nvm -g

在这里插入图片描述
再次执行

nvm install 18.17

不出意外应该能安装该版本的node.js
在这里插入图片描述
再次执行

nvm list

很明显,node.js版本已经默认为18.17.1
在这里插入图片描述
重新装一下PCCS

./cleanup.sh
./install.sh

不出意外的话,肯定会出现以下输出
在这里插入图片描述
!恭喜你已经迈过第一个小坎!
接下来的操作与一致英特尔官方的DCAP安装指南一致
这里温馨提示一下,PCS API key可以在这里订阅
输入主密钥或副密钥都可以
在这里插入图片描述

二、解决开启PCCS服务的问题

1、解决开启PCCS服务

此时执行

systemctl status pccs

不出意外的话,输出一定是白点的pccs.service和inactive的Active
在这里插入图片描述
执行

./startup.sh

在这里插入图片描述
再执行

systemctl restart pccs
systemctl status pccs

不出意外的话,pccs服务可以正常启动了
在这里插入图片描述

2、解决访问本地的8081端口

执行

curl -kv https://localhost:8081

不出意外的话,一定是无法访问的
在这里插入图片描述
这里千万要注意(血淋淋的教训):
一定不要以为是防火墙出问题而去执行sudo ufw allow 8081
因为一般的ubuntu系统如果你输入sudo ufw status,输出是状态:不活动,也就是说你的ubuntu是没有防火墙,所以你现在无法访问8081端口和防火墙没有半毛钱关系的。
不然上两张图里的pccs.service不仅会变成白点,而且还会出现新的报错,如下(笔者已经为大家踩过坑了)
在这里插入图片描述
执行

nano pccs_server.js

确保文件开头的import是import Config from 'config';
执行

npm ls config

确保有config模块在这里插入图片描述
如果没有的话,就安装一下

npm install config

修复一下权限问题

chmod -R 755 /opt/intel/sgx-dcap-pccs

执行

node pccs_server.js

在其他终端再次执行

curl -kv https://localhost:8081

如果输出是这样的话
在这里插入图片描述
!恭喜你已经迈过第二个小坎,已经完美地配置好PCCS了!

提示:本文配置PCCS仅供参考,因为每台机器的系统、预装的软件都不一样,而且大家能特地来看这篇文章,大概率是已经执行了英特尔官方的配置PCCS步骤遇到坎了,再来按照本文的步骤走不一定能获得一样的结果。

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

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

相关文章

k8s metrics-server服务监控pod 的 cpu、内存

项目场景&#xff1a; 需要开启指标服务&#xff0c;依据pod 的 cpu、内存使用率进行自动的扩容或缩容 pod 的数量 解决方案&#xff1a; 下载 metrics-server 组件配置文件&#xff1a; wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/…

【已解决】Python 中 AttributeError: ‘NoneType‘ object has no attribute ‘X‘ 报错

本文摘要&#xff1a;本文已解决 AttributeError: ‘NoneType‘ object has no attribute ‘X‘ 的相关报错问题&#xff0c;并总结提出了几种可用解决方案。同时结合人工智能GPT排除可能得隐患及错误。 &#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱…

HTML静态网页成品作业(HTML+CSS+JS)—— 美食企业曹氏鸭脖介绍网页(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;使用Javacsript代码实现 图片轮播切换&#xff0c;共有4个页面。 二、…

称重显示模块 Modbus RTU 通信

目录 一、智能称重数字显示器模块(带通信)1、称重传感器接线说明称重显示模块称重传感器USB 转 TTL 2、校准传感器&#xff08;标定&#xff1a;零点标定、满度标定&#xff09; 二、Modbus RTU 协议1、Modbus RTU 数据帧2、数据帧格式请求帧响应帧 三、上位机电脑与称重显示模…

使用神卓互联来访问单位内部web【内网穿透神器】

在现代工作环境中&#xff0c;有时我们需要从外部访问单位内部的 web 资源&#xff0c;而神卓互联这款内网穿透神器就能完美地满足这一需求。 使用神卓互联来访问单位内部 web 其实并不复杂&#xff0c;以下是大致的使用步骤和配置方法。 首先&#xff0c;我们需要在单位内部的…

基于Unet++在kaggle—2018dsb数据集上实现图像分割

目录 1. 作者介绍2. 理论知识介绍2.1 Unet模型介绍 3. 实验过程3.1 数据集介绍3.2 代码实现3.3 结果 4. 参考链接 1. 作者介绍 郭冠群&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2023级研究生 研究方向&#xff1a;机器视觉与人工智能 电子邮件&#xff…

【电机】开环控制系统和闭环控制系统

1 什么是控制系统 控制系统是指由控制主体、控制客体和控制媒体组成的具有自身目标和功能的管理系统。也可以理解为&#xff1a;为了使控制对象达到预期的稳定状态。例如一个水箱的温度控制&#xff0c;可以通过控制加热设备输出的功率进而来改变水温达到目标温度&#xff0c;…

Linux发邮件的工具推荐有哪些?如何配置?

Linux发邮件的功能怎么样&#xff1f;Linux系统如何设置服务器&#xff1f; 在Linux操作系统中&#xff0c;有多种工具可供选择用来发送电子邮件&#xff0c;每种工具都有其独特的特点和适用场景。AokSend将介绍几种常用的Linux发邮件工具&#xff0c;并分析它们的优缺点和适用…

接口自动化测试的全面解析与实战指南!

&#x1f680; 【引言】&#x1f680; 接口自动化测试&#xff0c;作为现代软件开发生命周期中的关键一环&#xff0c;扮演着“质量守门员”的角色。它不仅关乎提升开发速度&#xff0c;更在于确保每一次更新都能可靠地满足用户期待。接下来&#xff0c;我们将踏上一场深入浅出…

Redis分布式锁的实现、优化与Redlock算法探讨

Redis分布式锁最简单的实现 要实现分布式锁,首先需要Redis具备“互斥”能力,这可以通过SETNX命令实现。SETNX表示SET if Not Exists,即如果key不存在,才会设置它的值,否则什么也不做。利用这一点,不同客户端就能实现互斥,从而实现一个分布式锁。 举例: 客户端1申请加…

RH850---注意问题积累--1

硬件规格(引脚分配&#xff0c;内存映射&#xff0c;外设功能规格、电气特性、时序图)和操作说明 注意:有关使用的详细信息&#xff0c;请参阅应用说明 ---------外围函数。。。 1:存储指令完成与后续同步指令的一代 当控制寄存器被存储指令更新时&#xff0c;从存储的执行开始…

在网站建设时,如何选择适合自己的网站模版

可以根据以下几个地方选择适合的网站模板 1.公司的核心业务 根据公司的业务内容来确定网站展示的内容之一&#xff0c;不同的业务内容可以有不同的展示方式&#xff0c;以此来确定网站的展示风格之一&#xff0c;公司肯定是要有明确的业务内容&#xff0c;并且能够在网站…

[C#]winform使用onnxruntime部署LYT-Net轻量级低光图像增强算法

【训练源码】 https://github.com/albrateanu/LYT-Net 【参考源码】 https://github.com/hpc203/Low-Light-Image-Enhancement-onnxrun 【算法介绍】 一、研究动机 1.研究目标 研究的目标是提出一种轻量级的基于YUV Transformer 的网络&#xff08;LYT-Net&#xff09;&…

neo4j-官网学习

1、cypher 代码学习文档 https://neo4j.com/docs/cypher-cheat-sheet/5/auradb-enterprise 2、APOC函数包安装&#xff08;desktop&#xff09; 直接点击就可以安装&#xff0c;安装完之后重启一下&#xff0c;Cypher查询中使用CALL apoc.help(‘apoc’)来检查APOC插件是否已…

Java技术驱动的工程项目管理系统源码:工程管理的数字化解决方案

工程项目管理系统是一款基于Java技术的专业工程管理软件&#xff0c;它采用了Spring Cloud、Spring Boot、Mybatis、Vue和ElementUI等前沿技术&#xff0c;通过前后端分离架构构建了一个功能全面的工程项目管理系统。 随着公司的发展&#xff0c;工程管理的需求日益增长&#x…

图像处理与视觉感知复习--彩色图像处理

文章目录 三原色原理及其两种应用常用彩色模型及其应用领域各种颜色模型的转换彩色图像处理 三原色原理及其两种应用 三基色原理 自然界中绝大多数的颜色都可看作是由红、绿、蓝三种颜色组合而成&#xff1b;自然界中的绝大多数的颜色都可以分解成红、绿、蓝这三种颜色。这即…

渗透测试模拟实战-tomexam网络考试系统

渗透测试&#xff0c;也称为“pentest”或“道德黑客”&#xff0c;是一种模拟攻击的网络安全评估方法&#xff0c;旨在识别和利用系统中的安全漏洞。这种测试通常由专业的安全专家执行&#xff0c;他们使用各种技术和工具来尝试突破系统的防御&#xff0c;如网络、应用程序、主…

【PyQt5】简要介绍

文章目录 一、PyQt5的简介、安装、配置1.1 简介1.2 安装与配置1.3 QtDesigner1.3.1 基础操作 二、PyQt5的基本控件&#xff08;Widget Box&#xff09;2.1 基类&#xff08;QWidget&#xff09;2.1.1 QWidget 2.2 Button类&#xff08;属于QtWidgets&#xff1a;QPushButton&am…

轮到国产游戏统治Steam榜单

6月10日晚8点&#xff0c;《黑神话:悟空》实体版正式开启全款预售,预售开启不到5分钟,所有产品即宣告售罄。 Steam上&#xff0c;《黑神话:悟空》持续占据着热销榜榜首的位置。 但在《黑神话:悟空》傲人的光环下&#xff0c;还有一款国产游戏取得出色的成绩。 6月10日&#…

vue3+ Element-Plus 点击勾选框往input中动态添加多个tag

实现效果&#xff1a; template&#xff1a; <!--产品白名单--><div class"con-item" v-if"current 0"><el-form-item label"平台名称"><div class"contaion" click"onclick"><!-- 生成的标签 …