gpt4 book ai didi

ssh - 如何使用 GitHub Actions 提取 secret ?

转载 作者:行者123 更新时间:2023-12-02 13:45:38 26 4
gpt4 key购买 nike

我有一个相当基本的场景。为此,我制作了一个专用的 ssh key 并将其添加到我的存储库 secret 中。

  • 代码被推送到 master
  • GitHub 操作使用 ssh 将其上传到服务器通过做echo "${{ secrets.SSH_KEY }}" > key .
  • 之后,我可以使用此 key 连接到我的服务器,例如ssh -i key devops@myserver.com lsb_release -a

  • 问题是由于某种原因,GitHub 操作无法将其写入文件,而是写入字符 ***而不是文件中的实际 secret 值。因此显然我无法连接到我的服务器。

    如何使用此 key 与 ssh 连接?有没有不使用文件就可以连接的方法?使用 GitHub 操作完成此常见场景的人能否解释一下?

    最佳答案

    GitHub Actions 应该能够以这种方式将 secret 写入文件。您看到星星的原因是日志被过滤了,所以如果要记录一个 secret ,它会在日志中替换为三个星号。这是一种防止意外泄露 secret 的安全措施,因为日志通常是公开可用的。

    但是,如果可能的话,无论如何都避免将 secret 写入日志是个好主意。你可以这样写你的命令,这样你就不会将 secret 写入日志:

        - run: 'echo "$SSH_KEY" > key'
    shell: bash
    env:
    SSH_KEY: ${{secrets.SSH_KEY}}

    您将在日志中看到的只有 echo "$SSH_KEY" > key ,不是 secret 或任何星号。

    请注意,这里确实需要引号,因为 >字符是 YAML 的特殊字符。

    如果这无法登录您的服务器,则可能是另一个问题;在一般情况下,这种技术确实适用于编写 secret 。

    关于ssh - 如何使用 GitHub Actions 提取 secret ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59481933/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com