Red Hat Enterprise Linux Server release 7.9(Maipo)
OpenSSL1.1.0f 2017年5月25日(库:OpenSSL 1.1.1g FIPS 21 Apr 2020)
最终用户没有SFTP服务器设置,给了我一个FTP服务器来获取一些工件。要通过互联网将文件传输到FTP,最好先保护文件,为此我使用了以下帖子:https://www.tecmint.com/encrypt-decrypt-files-tar-openssl-linux/
基本上,要从文件夹中创建安全的.tar.gz
/a.tgz
文件,我使用以下命令对其进行密码保护和加密,它成功了。
# tar -czf - * | openssl enc -e -aes256 -out secured.tar.gz
和解密文件,使用以下(我不使用-C <folder>
选项),就像前面提到的那样,把安全的。tar.gz文件的内容放入某个文件夹中):
# openssl enc -d -aes256 -in secured.tar.gz | tar xz
这在我的机器上用于加密和解密(提示输入密码并完成它的工作)。
当最终用户获得相同的文件(md45sum)文件的值在我的端和他们的端是相同的,他们得到以下错误消息:
- PS:他们输入了正确的密码,因为在我这边使用相同的密码工作。
在我的例子中,文件的扩展名为。tgz。
$ openssl enc -d -aes256 -in secure-artifact-package-1.0.0.tgz | tar xz -C artifact_1.0.0
enter aes-256-cbc decryption password:
gzip: stdin: not in gzip format
tar: Child died with signal 13
tar: Error is not recoverable: exiting now
error writing output file
告诉他们尝试-C artifact_1.0.0
,得到相同的错误信息。
当密码正确时,为什么会出现这个错误消息?
最终用户使用的是旧版本的OpenSSL,这似乎导致了在解密过程中与密码相关的问题,即如果使用上述方法使用OpenSSL version X
创建文件,如果您尝试使用OpenSSL version Y
解密它,那么这个问题就来了。
在最终用户安装了相同的OpenSSL版本(或者可能比我的版本更新的版本也可以解决)之后,问题就消失了。
在Linux机器上安装以下OpenSSL版本后,问题解决了。
OpenSSL 1.1.0f 25 May 2017 (Library: OpenSSL 1.1.1g FIPS 21 Apr 2020)