【发布时间】:2012-03-23 00:20:34
【问题描述】:
我在网上搜索过,但找不到答案,所以我希望我能在这里找到一个。
我有一个在 Windows 和 IIS 上运行的 Web 应用程序,它是用 Perl 编写的。 其中一个脚本执行多项任务。其中一个执行命令来加密文件。这是命令:
my $cmd = "c:\\gnupg\\pub\\gpg -ase --always-trust --batch --passphrase mypassphrase --output $filename.pgp -r stuff $filename";
qx/$cmd/;
很遗憾,这不起作用。 我得到的错误是:
gpg: no default secret key: No secret key gpg: C:\\Dev\\somefile.csv: sign+encrypt failed: No secret key
当我尝试从 cmd 在同一台服务器上运行相同的命令时,它工作正常。
据我了解,当您通过网络运行脚本时,它以匿名用户身份运行。所以它看不到作为本地用户生成的密钥。如果我通过 cmd 在本地运行命令,它会看到密钥,因为它以本地用户身份运行。
问题是:我该如何解决这个问题并使脚本工作?
谢谢,
-安德烈
【问题讨论】:
-
查看网络服务器用户的主目录在哪里,并将密钥(以及其余配置数据)放在正确的位置。
标签: encryption gnupg