You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Databricks连接Snowflake:HEX64格式PEM密钥生成及错误解决

解决Azure Databricks UI连接Snowflake的PEM密钥格式错误问题

问题背景

使用Azure Databricks UI通过PEM密钥连接Snowflake时,触发错误:

summary: IllegalArgumentException: Input PEM private key is invalid, data: {"type":"baseError","stackFrames":

已通过以下命令生成无加密的PKCS8私钥(因Databricks无密码输入字段):
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out privatekey.p8 -nocrypt

但Databricks UI要求HEX64格式的PEM私钥,需完成格式转换并生成对应公钥用于Snowflake用户配置。

解决方案步骤

1. 生成无加密PKCS8私钥(若未生成)

如果还未生成目标私钥,执行以下命令生成无密码的PKCS8格式私钥:

openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out privatekey.p8 -nocrypt

2. 将PEM私钥转换为HEX64格式

Databricks UI需要的是去掉PEM头、尾及所有换行符的纯HEX编码字符串,执行以下命令完成转换:

# 提取私钥二进制内容并转为HEX格式,输出到文件
openssl pkcs8 -in privatekey.p8 -nocrypt -topk8 -outform DER | xxd -p -c 256 > privatekey_hex.txt

打开privatekey_hex.txt,复制其中的纯HEX字符串,直接粘贴到Databricks UI的密钥输入框即可。

3. 生成对应公钥用于Snowflake用户配置

生成与私钥匹配的公钥,用于Snowflake用户的密钥绑定:

# 从私钥导出PEM格式公钥
openssl rsa -in privatekey.p8 -pubout -out publickey.pub

复制publickey.pub中的完整内容(包含-----BEGIN PUBLIC KEY-----和-----END PUBLIC KEY-----),在Snowflake中执行以下SQL关联目标用户:

ALTER USER YOUR_USER_NAME SET RSA_PUBLIC_KEY='-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----';

将语句中的YOUR_USER_NAME替换为实际Snowflake用户名,公钥内容替换为你生成的内容。

验证要点

  • 确保HEX格式私钥无换行、空格或其他多余字符
  • Snowflake公钥配置需保留完整的PEM头尾部,无需转换为HEX格式
  • 确认Databricks集群网络可正常访问Snowflake的服务端点

内容的提问来源于stack exchange,提问作者lem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 10:12:35