GitHub Action验证SnowSQL签名报错:Can't check signature: No public key
问题:GitHub Action中SnowSQL签名验证失败(No public key)
错误原因
你遇到的gpg: Can't check signature: No public key错误,本质是本地GPG密钥环中缺少签名对应的Snowflake官方公钥。虽然你下载了SnowSQL安装包和签名文件,但GPG没有用于验证签名合法性的公钥,自然无法完成校验。错误信息里的RSA key 630D9F3CAB551AF3就是需要导入的目标公钥ID。
解决方法
在签名验证步骤之前,添加获取并导入Snowflake GPG公钥的步骤即可,以下是两种常用实现方式:
方式1:直接从密钥服务器接收公钥
在Workflow中新增步骤,使用GPG命令直接获取指定公钥:
steps: - uses: actions/checkout@v3 - name: Download SnowSQL run: curl -O https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/1.2/linux_x86_64/snowsql-1.2.24-linux_x86_64.bash - name: Download GPG signature file run: curl -O https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/1.2/linux_x86_64/snowsql-1.2.24-linux_x86_64.bash.sig - name: Import Snowflake GPG public key run: gpg --batch --yes --recv-keys 630D9F3CAB551AF3 - name: Verify the package signature run: gpg --verify snowsql-1.2.24-linux_x86_64.bash.sig snowsql-1.2.24-linux_x86_64.bash
方式2:下载公钥文件后导入
如果密钥服务器访问有问题,也可以直接下载Snowflake的公钥文件再导入:
steps: - uses: actions/checkout@v3 - name: Download SnowSQL run: curl -O https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/1.2/linux_x86_64/snowsql-1.2.24-linux_x86_64.bash - name: Download GPG signature file run: curl -O https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/1.2/linux_x86_64/snowsql-1.2.24-linux_x86_64.bash.sig - name: Download Snowflake GPG public key run: curl -O https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/snowflake_gpg_key.pub - name: Import GPG public key run: gpg --batch --yes --import snowflake_gpg_key.pub - name: Verify the package signature run: gpg --verify snowsql-1.2.24-linux_x86_64.bash.sig snowsql-1.2.24-linux_x86_64.bash
关键说明
--batch --yes参数用于在GitHub Action的非交互式环境中自动确认操作,避免GPG弹出交互提示导致Workflow卡住。- 公钥ID
630D9F3CAB551AF3是Snowflake用于签名SnowSQL安装包的固定公钥,可通过官方渠道确认其合法性。
内容的提问来源于stack exchange,提问作者SecretIndividual
相关产品推荐
相关产品推荐

