GPG 解密在用户注销后无法从 SQL 代理工作



>设置: - 我正在尝试通过 ssis 包中的脚本任务中的 C# 代码解密传入文件。下面是生成的命令,当通过可视化工作室中的调试模式执行时,它可以正常工作。此外,使用服务帐户凭据打开视觉工作室。

--homedir C:\Users\serviceaccounntName\AppData\Roaming\gnupg\" --batch --yes --passphrase MyPassphrase -d -o "outputfileName" --always-trust "SourceFileName"

问题: 通过调试模式运行后,通过SQL代理作业也可以正常工作。 但是一旦我从设置了所有这些的远程桌面顶部注销,传入的文件就不再通过 SQl 代理作业解密 并继续执行。我检查了任务管理器,我可以看到在服务帐户用户下运行的 pinentry.exe。为了使它工作,我杀死了任务并从调试模式调试了一个示例文件,该文件将要求输入密码并发布甚至sql代理作业也开始工作。但是一旦我退出,同样的事情就会再次发生。

我尝试在脚本和进程任务中使用没有 --homedir 选项的命令,但相同的行为仍在继续。

谢谢

以下是最终起作用的方法。

  1. 已确保 gpg 代理会话处于活动状态。为此,我手动运行了一个解密包(调试模式(并输入了密码。
  2. 从CMD(命令提示符(运行在两个命令下面。 GPG-agent.exe allow-loopback-pinentry GPGCONF – kill gpg-agent
  3. 我在从我的SSIS进程任务调用的批处理文件中使用以下命令。 @echo OURPASSPHRASE|gpg.exe --batch --pinentry-mode=loopback --passphrase-fd 0 -d -o FILEPath\FileName.txt FilePath\FileName.txt.gpg

(以上所有操作都是使用我们用于运行 sql 作业的服务帐户完成的。

参考下面的链接 https://github.com/carlolars/gnupg2-msys2/issues/1

谢谢 希望对您有所帮助。

相关内容

  • 没有找到相关文章

最新更新