簡體   English   中英

如何在Github Actions中訪問SECRETS的值?

[英]How to access the value of SECRETS in Github Actions?

我正在嘗試訪問發送到GitHub Action的SECRET的值,但是我很掙扎。 無論鍵或原始值是什么,每次都將這些值作為[FILTERED]返回。

我可以毫無問題地訪問ENVIRONMENT VARIABLES ,因此我必須在其他地方搞砸。

本質上,我想做的是將ssh密鑰發送到我的操作/容器,但是在發送其他任何密鑰/值作為秘密時,我也會遇到相同的問題。

我的(簡化的)GitHub動作如下:

action "Test" {
  uses = "./.github/actions/test"
  secrets = [
    "SSH_PRIVATE_KEY",
    "SSH_PUBLIC_KEY",
  ]
  env = {
    SSH_PUBLIC_KEY_TEST = "thisisatestpublickey"
  }
}

Dockerfile:

FROM ubuntu:latest

# Args
ARG SSH_PRIVATE_KEY
ARG SSH_PUBLIC_KEY
ARG SSH_PUBLIC_KEY_TEST

# Copy entrypoint
ADD entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

entrypoint.sh:

#! /bin/sh

SSH_PATH="$HOME/.ssh"

mkdir "$SSH_PATH"
touch "$SSH_PATH/known_hosts"

echo "$SSH_PRIVATE_KEY" > "$SSH_PATH/id_rsa"
echo "$SSH_PUBLIC_KEY" > "$SSH_PATH/id_rsa.pub"
echo "$SSH_PUBLIC_KEY_TEST" > "$SSH_PATH/id_rsa_test.pub" 

cat "$SSH_PATH/id_rsa"
cat "$SSH_PATH/id_rsa.pub"
cat "$SSH_PATH/id_rsa_test.pub"

這三個cat命令的輸出為:

[FILTERED]
[FILTERED]
thisisatestpublickey

如您所見,我可以獲取(並使用)環境變量的值,但是秘密沒有被公開。

有人知道嗎?

為了更新這一點,我還嘗試了回顯entrypoint.sh中兩個不帶引號的秘密:

echo $SSH_PRIVATE_KEY
echo $SSH_PUBLIC_KEY

...並且在日志中,我看到$SSH_PRIVATE_KEY的完整解密內容(即我的ssh密鑰的實際內容),而$SSH_PUBLIC_KEY仍然返回[FILTERED]

因此,我可以假定我們能夠在一個動作中看到秘密的內容,但是我不知道為什么我只能看到其中一個,而另一個返回[FILTERED]

可能是緩存的東西嗎?

我只是想找出一種可預測的方式來處理此問題。

如您所見,我可以獲取(並使用)環境變量的值,但是秘密沒有被公開。

那是因為它們是秘密。 顯式清除了“動作”輸出中的秘密,並且不顯示它們。

文件內容仍包含機密內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM