GPG 无法在 cmd 行/脚本中解密 PGP 文件

GPG 无法在 cmd 行/脚本中解密 PGP 文件

使用 Kleopatra/GPG4win

已安装密钥/机密。密钥信任设置为最终信任,有效期已满,未过期。执行 gpg --list-secret-key 和 gpg --list-keys 时查看列表,一切看起来都很好。

我收到一个 .pgp 文件,有人用我提供的密钥加密了文件。我可以右键单击该文件,使用 Kleopatra (gui),选择解密并将文件保存到新位置,然后使用该文件、打开文件并读取内容。

问题是使用 cmd/脚本时出现错误:

gpg:公钥解密失败:没有密钥

gpg:解密失败:没有密钥

解密并移动:C:\Folder_A\Folder_B\folder_C\test_file_2024test.pgp

我正在使用的脚本/cmd 如下,它执行以下操作:

  1. 解密 PGP(失败)
  2. 将解密文件 (.txt) 移动至另一个位置(失败,因为文件未解密)
  3. 然后将原始文件(pgp)移动到存档位置(有效)
@echo off
set GPG_PATH="C:\Program Files (x86)\GnuPG\bin\gpg.exe"
::change locations to correct spots
set SOURCE_FOLDER="C:\Folder_c\Folder_d"
set DECRYPTED_FOLDER="C:\Folder_B\testfilesdecrypted"
set GPG_FILES_FOLDER="C:\Folder_A\Folder_B\Folder_C\Archive"
set LOG_FILE="C:\Logs\PGP_log.txt"

if not exist %DECRYPTED_FOLDER% mkdir %DECRYPTED_FOLDER%
if not exist %GPG_FILES_FOLDER% mkdir %GPG_FILES_FOLDER%

:: Create or clear the log file
echo. > %LOG_FILE%
::watch the encryption type - this is PGP
:: Watch the type of encryption (0 for PGP)
for %%i in (%SOURCE_FOLDER%\*.pgp) do (
    %GPG_PATH% --decrypt --output %DECRYPTED_FOLDER%\%%~ni --batch --yes --passphrase "Never_gona_happen" "%%i" >> %LOG_FILE% 2>&1
    move "%%i" %GPG_FILES_FOLDER%
    echo Decrypted and moved: %%i >> %LOG_FILE%
)

echo Decryption, move, and file transfer completed. Check %LOG_FILE% for details.

日志文件显示 pgp 文件未解密的错误。日志文件还显示该文件已移至存档。

为什么它不能与脚本或可能的更改一起使用?

相关内容