使用RSA连接Snowflake时出现KeyError: 'PRIVATE_KEY_PASSPHRASE'错误求助
问题分析
报错KeyError: 'PRIVATE_KEY_PASSPHRASE'的原因很直接:代码尝试读取名为PRIVATE_KEY_PASSPHRASE的环境变量,但你的系统中未配置该变量。他人环境能正常运行,是因为他们已经完成了这个环境变量的设置。
解决步骤
1. 针对RSA密钥的两种情况处理
情况1:你的RSA密钥设置了加密密码
Windows系统
- 临时生效:打开命令提示符(CMD),执行以下命令(替换为你的密钥密码),然后在同一个窗口运行Python脚本:
set PRIVATE_KEY_PASSPHRASE=你的密钥密码
- 永久生效:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,在「用户变量」或「系统变量」中点击「新建」,变量名填
PRIVATE_KEY_PASSPHRASE,变量值填密钥密码,重启命令行或IDE后生效。
Linux/macOS系统
- 临时生效:打开终端,执行以下命令,然后在同一个终端运行脚本:
export PRIVATE_KEY_PASSPHRASE=你的密钥密码
- 永久生效:编辑
~/.bashrc(Bash)或~/.zshrc(Zsh)文件,添加上述export命令,执行source ~/.bashrc(或对应配置文件)使设置生效。
情况2:你的RSA密钥没有加密密码
直接修改代码中加载私钥的部分,移除password参数:
with open("RSA/rsa_key.p8", "rb") as key: p_key= serialization.load_pem_private_key( key.read(), password=None, # 也可以直接删除这一行 backend=default_backend() )
2. 额外检查项
- 确认密钥文件路径正确:脚本运行时的当前目录是否能找到
RSA/rsa_key.p8,建议使用绝对路径(比如Windows下的C:/Snowflake/Learning/Python/VSO/RSA/rsa_key.p8)避免路径问题。 - 验证Snowflake用户公钥配置:登录Snowflake控制台,检查用户
PRABHA是否已关联正确的公钥(公钥可通过openssl rsa -in rsa_key.p8 -pubout命令从你的私钥文件生成)。
内容的提问来源于stack exchange,提问作者Prabha
相关产品推荐
相关产品推荐

