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

Rails 5.1.2中secrets:edit出现两个空文件,如何找回密钥文件?

Rails 5.1.2 密钥文件定位与空文件清理方案

一、先明确密钥存储位置

Rails 5.1+ 不再使用明文的secrets.yml,默认采用加密存储方案:用config/secrets.yml.enc保存加密后的密钥内容,搭配config/secrets.yml.key解密密钥,或通过环境变量RAILS_MASTER_KEY注入密钥。你的应用能正常运行,说明密钥已被正确加载,大概率是以下两种情况之一:

  • 本地config目录下存在secrets.yml.key文件,文件内的单行字符串就是解密密钥
  • 终端环境变量RAILS_MASTER_KEY已配置,执行echo $RAILS_MASTER_KEY即可查看密钥内容

二、解决secrets:edit多开空文件的问题

你遇到的E173提示是命令执行异常导致生成了多余的临时空文件,按以下步骤处理:

  1. 强制退出所有编辑窗口
    卡在vi提示时,直接按esc :q!即可一次性退出所有文件,无需重复操作。
  2. 清理临时空文件
    Rails执行secrets:edit时会在/tmp目录生成临时副本,空的临时文件可直接清理:
    find /tmp -name "secrets.yml.enc.*" -empty -delete
    
    也可手动进入/tmp目录,找到带secrets前缀的空文件直接删除。
  3. 执行正确的编辑命令
    注意是rails secrets:edit而非vi secrets:edit——你之前的命令有误,这可能是空文件问题的诱因之一。执行前确认config/secrets.yml.key存在,或RAILS_MASTER_KEY环境变量已配置。

三、定位实际密钥存储文件

  • 加密后的密钥内容存于config/secrets.yml.enc,该文件无法直接编辑,必须通过rails secrets:edit解密后操作
  • 解密密钥要么在config/secrets.yml.key(本地开发常用),要么在环境变量RAILS_MASTER_KEY中

四、验证密钥有效性

执行以下命令可直接查看解密后的密钥内容,确认配置正常:

rails secrets:show

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 19:54:26