Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何使用gpg检查发布软件的签名?_Bash_Gnupg - Fatal编程技术网

Bash 如何使用gpg检查发布软件的签名?

Bash 如何使用gpg检查发布软件的签名?,bash,gnupg,Bash,Gnupg,我正在创建一个docker映像,并尝试验证我下载的 我用来构建docker映像的主机在webproxy后面,我问自己这个代理是否与我的问题有关。我知道以前版本的gpg包含了选项——honor http proxy,该选项不再有效 为了理解脚本中gpg使用的细节,我编写了一个bash脚本。我在我的机器上运行这个脚本只是为了尝试一下。我的希望是,在我能在本地机器上工作之后,我能在Dockerfile中工作 #/bin/bash set-ex #下载 wget-O~/dev/gosu/gosu“htt

我正在创建一个docker映像,并尝试验证我下载的

我用来构建docker映像的主机在webproxy后面,我问自己这个代理是否与我的问题有关。我知道以前版本的gpg包含了选项
——honor http proxy
,该选项不再有效

为了理解脚本中gpg使用的细节,我编写了一个bash脚本。我在我的机器上运行这个脚本只是为了尝试一下。我的希望是,在我能在本地机器上工作之后,我能在Dockerfile中工作

#/bin/bash
set-ex
#下载
wget-O~/dev/gosu/gosu“https://github.com/tianon/gosu/releases/download/1.10/gosu-amd64";
wget-O~/dev/gosu/gosu.asc“https://github.com/tianon/gosu/releases/download/1.10/gosu-amd64.asc";
#验证签名
导出GNUPGHOME=“$(mktemp-d)”;
gpg--keyserver keyserver.ubuntu.com--recv key b42f6819007f00f80f88e364fd4036a9c25b357dd4;
gpg—批处理—验证~/dev/gosu/gosu/gosu.asc~/dev/gosu/gosu;
rm-rf“$GNUPGHOME”~/dev/gosu/gosu/gosu.asc;
chmod+x~/dev/gosu/gosu;
#验证二进制文件是否工作
戈苏没有人是真的;
此时,运行我的脚本会导致以下错误:

+ gpg --batch --verify ~/dev/gosu/gosu/gosu.asc ~/dev/gosu/gosu
gpg: can't open '~/dev/gosu/gosu/gosu.asc': Not a directory
gpg: verify signatures failed: Not a directory


首先将文件保存为
~/dev/gosu/gosu.asc
,但随后尝试将其用作
~/dev/gosu/gosu.asc
。我想一旦你删除了这个bug,它就会起作用