14、HDFS 透明加密KMS

这篇具有很好参考价值的文章主要介绍了14、HDFS 透明加密KMS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hadoop系列文章目录

1、hadoop3.1.4简单介绍及部署、简单验证
2、HDFS操作 - shell客户端
3、HDFS的使用(读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件夹属性等)-java
4、HDFS-java操作类HDFSUtil及junit测试(HDFS的常见操作以及HA环境的配置)
5、HDFS API的RESTful风格–WebHDFS
6、HDFS的HttpFS-代理服务
7、大数据中常见的文件存储格式以及hadoop中支持的压缩算法
8、HDFS内存存储策略支持和“冷热温”存储
9、hadoop高可用HA集群部署及三种方式验证
10、HDFS小文件解决方案–Archive
11、hadoop环境下的Sequence File的读写与合并
12、HDFS Trash垃圾桶回收介绍与示例
13、HDFS Snapshot快照
14、HDFS 透明加密KMS
15、MapReduce介绍及wordcount
16、MapReduce的基本用法示例-自定义序列化、排序、分区、分组和topN
17、MapReduce的分区Partition介绍
18、MapReduce的计数器与通过MapReduce读取/写入数据库示例
19、Join操作map side join 和 reduce side join
20、MapReduce 工作流介绍
21、MapReduce读写SequenceFile、MapFile、ORCFile和ParquetFile文件
22、MapReduce使用Gzip压缩、Snappy压缩和Lzo压缩算法写文件和读取相应的文件
23、hadoop集群中yarn运行mapreduce的内存、CPU分配调度计算与优化



本文旨在简单介绍hdfs的透明加密作用及其使用。
前提依赖:hadoop环境部署好且可用。部署文章可参考本专栏相关文章。
本文分为2部分,即介绍和部署及使用。

一、介绍

1、HDFS明文存储弊端

HDFS中的数据会以block的形式保存在各台数据节点的本地磁盘中,但这些block都是明文的。
通过Web UI页面找到Block的ID和副本位于的机器信息
如果在操作系统中直接访问block所在的目录,通过Linux的cat命令是可以直接查看里面的内容的,且是明文。
14、HDFS 透明加密KMS

在datanode找到其文件为:
/usr/local/bigdata/hdfsdata/dfs/data/current/BP-285668707-192.168.10.41-1662533817886/current/finalized/subdir0/subdir0/blk_1073741834
[alanchan@server2 subdir0]$ pwd
/usr/local/bigdata/hdfsdata/dfs/data/current/BP-285668707-192.168.10.41-1662533817886/current/finalized/subdir0/subdir0
[alanchan@server2 subdir0]$ cat blk_1073741834
11
[alanchan@server2 subdir0]$ 

2、HDFS透明加密

1)、介绍

HDFS透明加密(Transparent Encryption)支持端到端的透明加密,启用以后,对于一些需要加密的HDFS目录里的文件可以实现透明的加密和解密,而不需要修改用户的业务代码。端到端是指加密和解密只能通过客户端。
对于加密区域里的文件,HDFS保存的即是加密后的文件,文件加密的秘钥也是加密的。让非法用户即使从操作系统层面拷走文件,也是密文

2)、特点

  • HDFS集群管理和密钥的管理是互相独立的职责,由不同的用户角色(HDFS管理员,密钥管理员)承担
  • 只有HDFS客户端可以加密或解密数据,密钥管理在HDFS外部,HDFS无法访问未加密的数据或加密密钥
  • block在操作系统是以加密的形式存储的,从而减轻了操作系统和文件系统级别的安全威胁
  • HDFS使用AES-CTR(支持128位加密密钥(默认))加密算法

3、HDFS透明加密关键概念

1)、加密区域

  • HDFS的透明加密有一个新的概念,加密区域(the encryption zone)
  • 加密区域就是HDFS上的一个目录
  • 加密区域里写入文件的时候会被透明加密,读取文件的时候又会被透明解密

2)、密钥

  • 当加密区域被创建时,都会有一个加密区域密钥(EZ密钥,encryption zone key)与之对应,EZ密钥存储在HDFS外部的密钥库中
  • 加密区域里的每个文件都有其自己加密密钥,叫做数据加密密钥(DEK,data encryption key)
  • DEK会使用其各自的加密区域的EZ密钥进行加密,以形成加密数据加密密钥(EDEK)
    14、HDFS 透明加密KMS

3)、密钥库(keystore)

存储密钥(key)的叫做密钥库(keystore),将HDFS与外部企业级密钥库(keystore)集成是部署透明加密的第一步。这是因为密钥(key)管理员和HDFS管理员之间的职责分离是此功能的非常重要的。但是,大多数密钥库都不是为Hadoop工作负载所见的加密/解密请求速率而设计的。

4)、KMS(密钥管理服务)

Hadoop密钥管理服务(Key Management Server,简写KMS),用作HDFS客户端与密钥库之间的代理。KMS主要有以下几个职责:

  • 访问加密区域秘钥(EZ key)
  • 生成EDEK,EDEK存储在NameNode上
  • 为HDFS客户端解密EDEK

5)、写入加密文件过程

提前:创建加密区,设置加密区密钥
1、Client向NameNode请求在HDFS某个加密区新建文件
2、NameNode从缓存中取出一个新的EDEK(后台不断从KMS拉取新的EDEK到缓存中)
3、获取到EDEK会被NameNode保存到文件的元数据中
4、然后NameNode将EDEK发送给Client
5、Client发送EDEK给KMS,KMS用对应的EZ key将EDEK解密出DEK发送给Client
6、Client用DEK加密文件内容发送给datanode进行存储

DEK是加解密一个文件的密钥,而KMS里存储的EZ key是用来加解密所有文件的密匙(DEK)的密匙。
所以,EZ Key是更为重要的数据,只在KMS内部使用(DEK的加解密只在KMS内存进行),不会被传递到外面使用;而HDFS服务端只能接触到EDEK。
14、HDFS 透明加密KMS

6)、读取解密文件过程

  • 读流程与写流程类型,区别就是NameNode直接读取加密文件元数据里的EDEK返回给客户端,客户端一样把EDEK发送给KMS获取DEK。再对加密内容解密读取。
  • EDEK的加密和解密完全在KMS上进行。请求创建或解密EDEK的客户端永远不会处理EZ密钥。仅KMS可以根据要求使用EZ密钥创建和解密EDEK。

二、部署及使用

1、关闭HDFS集群

在server1上执行stop-dfs.sh

2、keystore密钥库

  • 存储密钥(key)的地方叫做密钥库(keystore)。
  • HDFS与keystore是互相独立的,两者之间通过KMS进行沟通。
  • KMS可以选择任何KeyProvider(密钥供应者)实现作为keystore 。
    此处的示例使用JavaKeyStoreProvider来作为keystore。
# https://hadoop.apache.org/docs/r3.1.4/hadoop-project-dist/hadoop-common/CredentialProviderAPI.html#Keystore_Passwords

keytool -genkey  -alias 'hdfs_keystore'
#密钥库的名字叫做hdfs,访问密钥库的密码是:123456
[alanchan@server1 ~]$ keytool -genkey  -alias 'hdfs_keystore'
输入密钥库口令:  
再次输入新口令: 
您的名字与姓氏是什么?
  [Unknown]:  
您的组织单位名称是什么?
  [Unknown]:  
您的组织名称是什么?
  [Unknown]:  
您所在的城市或区域名称是什么?
  [Unknown]:  
您所在的省/市/自治区名称是什么?
  [Unknown]:  
该单位的双字母国家/地区代码是什么?
  [Unknown]:  
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown是否正确?
  []:  y

输入 <hdfs_keystore> 的密钥口令
        (如果和密钥库口令相同, 按回车):  
[alanchan@server1 ~]$ ll -a
...
-rw-r--r--  1 alanchan root  1303 913 13:39 .keystore
...

3、配置kms-site.xml

hadoop.kms.key.provider.uri 设置密钥库的提供者 这里设置jceks,表示就是java密钥库

<configuration>
	<property>
		<name>hadoop.kms.key.provider.uri</name>
		<value>jceks://file@/${user.home}/kms.jks</value>
	</property>
	<property>
		<name>hadoop.security.keystore.java-keystore-provider.password-file</name>
		<value>kms.keystore.password</value>
	</property>
	<property>
		 <name>dfs.encryption.key.provider.uri</name>
		 <value>kms://http@server1:16000/kms</value>
	</property>
	<property>
		<name>hadoop.kms.authentication.type</name>
		<value>simple</value>
	</property>
</configuration>

#KMS访问java密钥库的密码文件kms.keystore.password需配置在Hadoop的配置目录下。不知道此步骤的具体作用
[alanchan@server1 hadoop]$ pwd
/usr/local/bigdata/hadoop-3.1.4/etc/hadoop
[alanchan@server1 hadoop]$ cat kms.keystore.password 
123456
[alanchan@server1 hadoop]$ 

4、kms-env.sh

export KMS_HOME=/usr/local/bigdata/hadoop-3.1.4
export KMS_LOG=${KMS_HOME}/logs/kms
export KMS_HTTP_PORT=16000
export KMS_ADMIN_PORT=16001

5、修改core|hdfs-site.xml

#在core|hdfs-site.xml增加下面jms配置
 <property>
		<name>hadoop.security.key.provider.path</name>
		<value>kms://http@server1:16000/kms</value>
</property>
#在server1上讲下面四个配置文件复制到server2、server3、server4

scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/hdfs-site.xml server2:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/hdfs-site.xml
scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/hdfs-site.xml server3:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/hdfs-site.xml
scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/hdfs-site.xml server4:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/hdfs-site.xml

scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml server2:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml
scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml server3:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml
scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml server4:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml

scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-site.xml server2:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-site.xml
scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-site.xml server3:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-site.xml
scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-site.xml server4:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-site.xml

scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-env.sh server2:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-env.sh
scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-env.sh server3:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-env.sh
scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-env.sh server4:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-env.sh

[alanchan@server1 ~]$ scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/hdfs-site.xml server2:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/hdfs-site.xml
hdfs-site.xml                                                                                                                                                                                                                                       100% 4120     4.0KB/s   00:00    
[alanchan@server1 ~]$ scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/hdfs-site.xml server3:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/hdfs-site.xml
hdfs-site.xml                                                                                                                                                                                                                                       100% 4120     4.0KB/s   00:00    
[alanchan@server1 ~]$ scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/hdfs-site.xml server4:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/hdfs-site.xml
hdfs-site.xml                                                                                                                                                                                                                                       100% 4120     4.0KB/s   00:00    
[alanchan@server1 ~]$ scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml server2:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml
core-site.xml                                                                                                                                                                                                                                       100% 2314     2.3KB/s   00:00    
[alanchan@server1 ~]$ scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml server3:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml
core-site.xml                                                                                                                                                                                                                                       100% 2314     2.3KB/s   00:00    
[alanchan@server1 ~]$ scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml server4:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/core-site.xml
core-site.xml                                                                                                                                                                                                                                       100% 2314     2.3KB/s   00:00    
[alanchan@server1 ~]$ scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-site.xml server2:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-site.xml
kms-site.xml                                                                                                                                                                                                                                        100% 1157     1.1KB/s   00:00    
[alanchan@server1 ~]$ scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-site.xml server3:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-site.xml
kms-site.xml                                                                                                                                                                                                                                        100% 1157     1.1KB/s   00:00    
[alanchan@server1 ~]$ scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-site.xml server4:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-site.xml
kms-site.xml                                                                                                                                                                                                                                        100% 1157     1.1KB/s   00:00    
[alanchan@server1 ~]$ scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-env.sh server2:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-env.sh
kms-env.sh                                                                                                                                                                                                                                          100% 1491     1.5KB/s   00:00    
[alanchan@server1 ~]$ scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-env.sh server3:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-env.sh
kms-env.sh                                                                                                                                                                                                                                          100% 1491     1.5KB/s   00:00    
[alanchan@server1 ~]$ scp /usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-env.sh server4:/usr/local/bigdata/hadoop-3.1.4/etc/hadoop/kms-env.sh
kms-env.sh                                                                                                                                                                                                                                          100% 1491     1.5KB/s   00:00    
[alanchan@server1 ~]$ 

6、kms服务及集群启动

#关闭dfs
stop-dfs.sh
#启动dfs
start-dfs.sh

[alanchan@server1 ~]$ hadoop --daemon start kms
WARNING: KMS_LOG has been replaced by HADOOP_LOG_DIR. Using value of KMS_LOG.
WARNING: /usr/local/bigdata/hadoop-3.1.4/temp does not exist. Creating.
WARNING: /usr/local/bigdata/hadoop-3.1.4/logs/kms does not exist. Creating.
[alanchan@server1 ~]$ jps
13008 DFSZKFailoverController
15953 Jps
15154 QuorumPeerMain
15687 KMSWebServer
12189 NameNode
28893 ResourceManager
[alanchan@server1 ~]$ 

7、透明加密使用

1)、创建key

hadoop key create ezk
hadoop key list -metadata

[alanchan@server1 ~]$ hadoop key list -metadata
Listing keys for KeyProvider: org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider@1ebd319f
[alanchan@server1 ~]$ hadoop key create test_ezk
test_ezk has been successfully created with options Options{cipher='AES/CTR/NoPadding', bitLength=128, description='null', attributes=null}.
org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider@55b53d44 has been updated.
[alanchan@server1 ~]$ hadoop key list -metadata
Listing keys for KeyProvider: org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider@1ebd319f
test_ezk : cipher: AES/CTR/NoPadding, length: 128, description: null, created: Tue Sep 13 14:10:45 CST 2022, version: 1, attributes: [key.acl.name=test_ezk] 

2)、创建加密区

首先创建一个目录,然后把该目录设置为加密区(在HDFS集群中任何一台机器上执行都可以)

[alanchan@server4 ~]$ hadoop fs -ls /
Found 9 items
drwxr-xr-x   - alanchan supergroup          0 2022-09-09 02:24 /dest
drwxr-xr-x   - alanchan supergroup          0 2022-09-13 01:25 /test
drwxr-xr-x   - alanchan supergroup          0 2022-09-13 03:07 /testacl

[alanchan@server4 ~]$ hadoop fs -mkdir /zone
[alanchan@server4 ~]$ hadoop fs -ls /
Found 10 items
drwxr-xr-x   - alanchan supergroup          0 2022-09-09 02:24 /dest
drwxr-xr-x   - alanchan supergroup          0 2022-09-13 01:25 /test
drwxr-xr-x   - alanchan supergroup          0 2022-09-13 03:07 /testacl
drwxr-xr-x   - alanchan supergroup          0 2022-09-13 06:16 /zone
[alanchan@server4 ~]$ hdfs crypto -createZone -keyName test_ezk -path /zone
Added encryption zone /zone
[alanchan@server4 ~]$ 

3)、测试加密效果

上传文件到加密区,然后读取文件内容

[alanchan@server1 hadoop-3.1.4]$ hadoop fs -put 1.txt /zone
[alanchan@server1 hadoop-3.1.4]$ hadoop fs -ls /zone
Found 2 items
drwxrwxrwt   - alanchan supergroup          0 2022-09-13 14:18 /zone/.Trash
-rw-r--r--   3 alanchan supergroup          6 2022-09-13 14:21 /zone/1.txt
[alanchan@server1 hadoop-3.1.4]$ hadoop fs -cat /zone/1.txt
12345
[alanchan@server1 hadoop-3.1.4]$

获取文件加密信息

hdfs crypto -getFileEncryptionInfo -path /zone/1.txt

[alanchan@server1 hadoop-3.1.4]$ hdfs crypto -getFileEncryptionInfo -path /zone/1.txt
{cipherSuite: {name: AES/CTR/NoPadding, algorithmBlockSize: 16}, cryptoProtocolVersion: CryptoProtocolVersion{description='Encryption zones', version=2, unknownValue=null}, edek: 42b1e5b3176501141b4ed7da03fdd394, iv: b0d129f9bedc1e6e95dd3f6a0f5d4226, keyName: test_ezk, ezKeyVersionName: test_ezk@0}
[alanchan@server1 hadoop-3.1.4]$ 

切换不同用户进行文件读取操作只要具备read权限都可以读取文件的内容

[root@server1 hadoop-3.1.4]# hadoop fs -cat /zone/1.txt
12345

也就是对客户端来说是透明的,感觉不到文件被加密。
如果直接从DataNode的机器的本地文件系统读取Block信息。发现是无法读取数据的。
因为在存储数据的时候被加密了

[alanchan@server2 subdir0]$ pwd
/usr/local/bigdata/hdfsdata/dfs/data/current/BP-285668707-192.168.10.41-1662533817886/current/finalized/subdir0/subdir0
[alanchan@server2 subdir0]$ cat blk_1073741896
�D�R�I
[alanchan@server2 subdir0]$ 

下载到本地打开文件,已经加密了
14、HDFS 透明加密KMS文章来源地址https://www.toymoban.com/news/detail-452108.html

到了这里,关于14、HDFS 透明加密KMS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop3教程(二):HDFS的定义及概述

    随着实际生产环境中的数据越来越大,在一台服务器上无法存储下所有的数据,那么就要把数据分散到多台服务器的磁盘里存放。但是像这样做跨服务器的数据管理和维护是很难的,所以就迫切需要一种方式,来协调管理多台机器上的文件,这就是分布式文件管理系统。 HD

    2024年02月07日
    浏览(44)
  • Hadoop3.0大数据处理学习2(HDFS)

    HDFS:Hadoop Distributed File System。Hadoop分布式存储系统 一种允许文件通过网络在多台主机上分享的文件系统,可以让多机器上的用户分享文件和存储空间。 两大特性:通透性、容错性 分布式文件管理系统的实现很多,HDFS只是其中一种,HDSF不适合存储小文件。GFS、TFS。 使用格式

    2024年02月08日
    浏览(50)
  • Hadoop3教程(三):HDFS文件系统常用命令一览

    hdfs命令的完整形式: 其中subcommand有三种形式: admin commands client commands:如本节重点要讲的dfs daemon commands dfs(文件系统命令),这个是HDFS里,日常使用 最为频繁的一种命令 ,用来在HDFS的文件系统上运行各种文件系统命令,如查看文件、删除文件等。 基本语法: 这俩基本

    2024年02月06日
    浏览(63)
  • Hadoop3教程(二十八):(生产调优篇)NN、DN的多目录配置及磁盘间数据均衡

    NN多目录的意思是,本地目录可以配置成多个,且每个目录存放内容相同,这样的目的是增加可靠性。比如说下图这样: 但其实生产中不常用哈, 生产中要增加NN的可靠性的话,一般会开启NN的高可用,即在不同节点上开启多个NN,靠zookeeper来协调 。 所以本节就 了解一下即可

    2024年02月08日
    浏览(42)
  • (最新版本)hive4.0.0 + hadoop3.3.4 集群安装(无坑版)-大数据学习系列(一)

    网上的找的文档大多残缺不靠谱,所以我整理了一份安装最新版本的hive4..0.0+hadoop3.3.4的学习环境,可以提供大家安装一个完整的hive+hadoop的环境供学习。 由于在公司担任大数据的培训工作后续还会更新一些基础的文章,希望能帮助到大家。 机器信息 Hostname k8s-master k8s-node1 k8

    2024年02月06日
    浏览(50)
  • 大数据 - Hadoop系列《五》- HDFS文件块大小及小文件问题

    系列文章: 大数据- Hadoop入门-CSDN博客 大数据 - Hadoop系列《二》- Hadoop组成-CSDN博客 大数据 - Hadoop系列《三》- HDFS(分布式文件系统)概述_大量小文件的存储使用什么分布式文件系统-CSDN博客 大数据 - Hadoop系列《三》- MapReduce(分布式计算引擎)概述-CSDN博客 大数据 - Hadoop系

    2024年04月24日
    浏览(49)
  • AWS KMS加密和解密

    目录 1. Key Management Service 1.1 KMS概述 1.2 KMS特点 2. 配置KMS 2.1 创建KMS 2.2 添加KMS权限 3. KMS加密 3.1 KMS cli 3.2 加密测试 4. KMS信封加密 4.1 KMS信封加密的定义及主要优势 4.2 信封加密测试 4.2.1 加密过程 4.2.2 解密过程 用于创建和管理加密密钥,在 AWS KMS 中创建的客户主密钥均受硬件

    2024年01月23日
    浏览(18)
  • vscode 系列文章目录 - ctrl+鼠标左键无效

    vscode 中有时会遇到 “Alt + 鼠标点击” 有效,但 “Ctrl + 鼠标点击” 无效,这时可以通过 Ctrl + , 进行系统配置。 进入VScode的首选项,选择设置(快捷键 Ctrl + , ),输入Go to definition,找到如下两个设置。 Editor: Multi Cursor Modifier 设置成 alt “editor.gotoLocation.multipleDefinitions” 设置

    2024年04月23日
    浏览(52)
  • 【vim 学习系列文章 5 - cscope 过滤掉某些目录】

    上篇文章:【vim 学习系列文章 4 - vim与系统剪切板之间的交互】 下篇文章:【vim 学习系列文章 6 – vim 如何从上次退出的位置打开文件】 第一步 创建自己的 cscope 脚本 ~/.local/bin/cscope.sh ,如下: 我的这个脚本首先去区分当前执行 cscope 命令的目录是 rt-thread 目录还是 linux 目

    2024年02月12日
    浏览(82)
  • Git系列文章目录 - Git 子模块git submodule使用

    项目中有时会遇到会涉及子模块的使用,比如 flatpak 项目包含多个子模块。 进入需要添加子模块的目录,一般是项目根目录。 删除子模块目录及源码: 删除项目目录下.gitmodules文件中子模块相关条目: 删除配置项中子模块相关条目: 删除模块下的子模块目录: 清除子模块

    2024年01月20日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包