当前位置: 首页 > news >正文

如何把一个多行的RAS key放到环境变量中?

由于 shell 中的字符串转义问题:

export RSA_KEY="..." 方式手动定义环境变量时,\n 实际是作为两个字符(反斜杠和 n)存进了变量中,而不是换行符。


✅ 解决方案:让 shell 把 \n 解释为真实的换行符

你有两种推荐方式来正确设置该多行 RSA 私钥的环境变量:


✅ 方法一:使用 printf 设置(推荐)

export RSA_KEY=$(printf "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDR+yI68bXb/Hm8\n...")

🔹 这个方式中,printf 会把 \n 正确地转为换行符,然后通过 $(...) 放入环境变量中。


✅ 方法二:使用 heredoc(适合长私钥)

export RSA_KEY="$(cat <<EOF
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDR+yI68bXb/Hm8
...(中间略)...
-----END PRIVATE KEY-----
EOF
)"

🔹 这种方式可以直接写多行私钥,不需要转义 \n


✅ 验证环境变量是否包含真实换行

你可以这样打印检查:

echo "$RSA_KEY"

应该能看到多行私钥。

而用:

echo $RSA_KEY

会显示成一行(换行符被 shell 展平了),这是正常现象。


✅ 如果你一定要用 \n 转义形式写入 .env 文件或 CI/CD:

那么在代码中需要用语言的方式把 \\n 替换成真实换行:

  • 在 Node.js 里:

    const key = process.env.RSA_KEY.replace(/\\n/g, '\n');
    
  • 在 Go 中:

    key := strings.ReplaceAll(os.Getenv("RSA_KEY"), `\n`, "\n")
    

总结

方式特点示例
printf保留换行符,适合单行设置export VAR=$(printf "...")
heredoc适合写入多行值,最可读export VAR="$(cat <<EOF ... EOF)"
\n 转义适合 .env 文件/CI,用代码再还原RSA_KEY="line1\nline2\n..."
http://www.dtcms.com/a/270662.html

相关文章:

  • 最新全开源礼品代发系统源码/电商快递代发/一件代发系统
  • 红宝书单词学习笔记 list 26-50
  • 71、【OS】【Nuttx】【启动】启动函数分析
  • 股权结构解析
  • 首批 | 云轴科技ZStack加入施耐德电气技术本地化创新生态
  • 微算法科技从量子比特到多级系统,Qudits技术革新引领量子计算新时代
  • 从零开始学前端html篇2
  • Redis:分组与设备在 Redis 中缓存存储设计
  • K线训练关键代码
  • Laravel 动态生成 PDF:基于 KnpSnappy 实现多公司页眉页脚差异化配置
  • C++如何进行性能优化?
  • 安卓设备信息查看器 - 源码编译
  • PlantUML 在 IDEA 中文版中的安装与使用指南
  • Vim 编辑器常用操作详解(新手快速上手指南)
  • LKT4304稳定可靠高兼容性国产安全加密芯片
  • JAVA观察者模式demo【设计模式系列】
  • WebSocket实现多人实时在线聊天
  • 【TCP/IP】2. 计算机网络与因特网体系结构
  • 两张图片对比clip功能
  • 后端id设置long类型时,传到前端,超过19位最后两位为00
  • 解锁DevOps潜力:如何选择合适的CI/CD工作流工具
  • 【Linux | 网络】socket编程 - 使用UDP实现服务端向客户端提供简单的服务
  • python:ImportError: cannot import name ‘ParameterSource‘ from ‘click.core‘
  • Linux 中的 .bashrc 是什么?配置详解
  • ESP32的OTA升级详解:2. OTA低层组件app_update介绍
  • 增强检索知识库系统1
  • 模型内部进行特征提取时,除了“减法”之外,还有哪些技术
  • 线程池与并发工具:优化多线程执行!
  • [特殊字符]【跨数据库支持】SQL 秒转 ArkTS 实体!HarmonyOS 开发者的数据库适配神器 gotool.top
  • Node.Js是什么?