【问题标题】:apt-key Warning: apt-key output should not be parsed (stdout is not a terminal)apt-key 警告:不应解析 apt-key 输出(stdout 不是终端)
【发布时间】:2020-08-10 15:53:08
【问题描述】:

操作系统:Debian 10

我已经尝试过这里提供的解决方案:How to circumvent "apt-key output should not be parsed"?

这个:APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn - 没用。

然后我尝试做:

DOCKER_GPG="9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88"

apt-key fingerprint 0EBFCD88 > docker_key

DOCKER_DL_GPG=$(cat docker_key | grep 9DC8)

if [[ "$DOCKER_GPG" == "$DOCKER_DL_GPG" ]]; then
  # do
else
  # don't
fi

但是,这不起作用,因为 apt-key 错误退出脚本(wth!)

我需要在脚本中安装 docker,但由于错误无法验证签名。它必须是自动化的,我不想跳过检查必须有一种人们这样做的方式,三个问题:

  1. 我还能如何检查指纹?我尝试了gpg --list-keys --with-fingerprint,但不起作用。
  2. 还有其他方法可以检查 docker 指纹吗?
  3. 如何在脚本中正确使用apt-key检查指纹?

谢谢!

【问题讨论】:

    标签: bash debian apt-key


    【解决方案1】:

    愿意分享您的整个脚本吗?我在 bash 下运行,警告不会导致脚本中止,即使使用 set -e 运行也是如此。这是我用于此目的的内容:

    #!/bin/bash
    
    DOCKER_FINGERPRINT="9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88"
    
    apt-key fingerprint 0EBFCD88 > /tmp/temp_docker_fingerprint
    DOWNLOADED_FINGERPRINT=$(cat /tmp/temp_docker_fingerprint | grep "0EBF CD88" | xargs)
    rm /tmp/temp_docker_fingerprint
    
    if [[ "$DOCKER_FINGERPRINT" == "$DOWNLOADED_FINGERPRINT" ]]; then
       echo "Downloaded Docker GPG fingerprint matches the expected value ($DOCKER_FINGERPRINT)"
    else
       echo "ERROR:   Downloaded Docker GPG fingerprint does not match the expected value ($DOCKER_FINGERPRINT)"
       echo "ERROR:   Exiting Docker setup with error.  See scripts/docker.sh to troubleshoot."
       exit -1
    fi
    

    【讨论】:

      猜你喜欢
      • 2018-06-18
      • 1970-01-01
      • 1970-01-01
      • 2021-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-04
      相关资源
      最近更新 更多