GPG 解密命令不返回任何输出文件

GPG 解密命令不返回任何输出文件

我使用生成了 gpg 公钥和私钥gnupg (2.4.0)在 Windows cmd 上(我们称之为:源机器)加密了一个.csv 文件。

现在我在 DataBrick 工作区并创建了具有以下配置的集群: 运行时环境:12.2 LTS(包括 Apache Spark 3.3.2、Scala 2.12)
节点类型:Standard_f4 机器

*DataBrick GPG 版本:2.3.1

  1. 将生成的公钥和私钥文件 (.pgp) 放入 DataBrick 文件存储 (DataBrick 本地文件夹)

  2. 创建了一个 Notebook 来编写 shell 命令

  3. 执行以下 shell 命令来导入密钥(成功)

    %sh gpg --import /dbfs/FileStore/GPG/PUBkey.gpg gpg --batch --no-tty --yes --pinentry-mode = loopback --passphrase“1234” --import /dbfs/FileStore/GPG/PVTkey.gpg

  4. 并按照以下命令解密文件:(无响应)

    %sh gpg --no-tty --yes --always-trust --pinentry-mode = loopback --yes --passphrase“1234” --output /dbfs/FileStore/GPG/File1.csv --decrypt /dbfs/FileStore/GPG/File1_csv.gpg

但它不会返回任何输出解密文件,也不会返回任何错误或警告消息。

现在奇怪的是,如果我在生成密钥和加密文件的源系统中解密相同的加密文件,它可以正常工作并生成解密的文件。

此外,如果我使用相同的公钥通过以下命令加密 DATABRICK 环境中的 .CSV 文件,然后使用相同的 POINT 4 命令顺利解密生成的加密文件。

为了这个目的,我测试了数据文件和密钥的 .asc 和 .gpg 扩展名,但没有成功。

此外,我尝试在 DataBrick 中使用 GNUPG Python 库并编写了以下代码,但它显示相同的行为:执行正常,但没有解密文件作为输出。

import gnupg
import codecs

try:
  gpg = gnupg.GPG(gnupghome='/dbfs/FileStore/homed') 
except TypeError:
  gpg = gnupg.GPG(homedir='/dbfs/FileStore/homed')

with open('/dbfs/FileStore/GPG/File1_csv.gpg', 'rb') as f:    
  status = gpg.decrypt_file(f,  passphrase='1234',output='/dbfs/FileStore/GPG/File1.csv') 

相关内容