家用住宅主机Linux Vault密钥管理AI中转密钥

前言:为什么要在家用主机上用Vault管AI密钥

很多朋友在家用Linux服务器(比如旧电脑改的NAS或工控机)上跑AI相关服务,需要用到多个AI平台的API密钥(OpenAI、Claude等)。
直接把密钥写在脚本或环境变量里,既不安全也不方便轮换。
HashiCorp Vault 是一个专业的密钥管理工具,能帮你安全存储、控制访问、记录审计日志。
本文面向零基础用户,一步步教你在家用Linux主机上搭建Vault,并实现AI中转密钥的统一管理。

准备条件

你需要一台安装了Linux系统的家用主机(以Ubuntu 22.04为例),拥有sudo权限的用户。
确保网络可正常访问外网(用于下载Vault包)。
不需要公网IP,Vault可只监听本机或内网。
另外准备好你要管理的AI API密钥(比如一个OpenAI Key)备用。

第一步:安装并启动Vault

  1. 下载Vault二进制文件(本文以1.15.6为例,但版本会更新,请到Vault官方下载页获取最新地址):
   wget https://releases.hashicorp.com/vault/1.15.6/vault_1.15.6_linux_amd64.zip
   sudo apt install unzip
   unzip vault_1.15.6_linux_amd64.zip
   sudo mv vault /usr/local/bin/
  1. 验证安装:
   vault --version
  1. 创建配置目录:
   sudo mkdir -p /etc/vault.d
   sudo mkdir -p /opt/vault/data
  1. 编辑配置文件 /etc/vault.d/config.hcl(使用nano或vim),写入以下内容(注意:家用环境不需要TLS,但生产环境务必配置证书):
   storage "raft" {
     path = "/opt/vault/data"
     node_id = "node1"
   }
   listener "tcp" {
     address     = "127.0.0.1:8200"
     tls_disable = true
   }
   api_addr = "http://127.0.0.1:8200"
   cluster_addr = "http://127.0.0.1:8201"
   ui = true
  1. 启动Vault服务(前台测试):
   vault server -config=/etc/vault.d/config.hcl

看到 ==> Vault server started! 说明成功。
按 Ctrl+C 停止,后续可设为systemd服务,这里从简。

第二步:初始化并解除密封

新Vault启动后处于“sealed”状态,需要初始化生成根密钥和恢复密钥。

  1. 设置环境变量(每次新终端都需要执行):
   export VAULT_ADDR='http://127.0.0.1:8200'
  1. 初始化:
   vault operator init -key-shares=1 -key-threshold=1

输出类似:

   Unseal Key 1: xxxxxx
   Initial Root Token: hvs.xxxxx

务必保存好这两行,丢失后无法恢复。 家用环境用1个密钥分片即可,生产环境请用5个以上。

  1. 解封(unseal):
   vault operator unseal

输入上面给出的Unseal Key。
再检查状态:

   vault status

看到 Sealed false 即表示解封完成。

  1. 用root token登录:
   vault login 

第三步:存储AI中转密钥

下一步在Vault中启用KV(键值)存储引擎,并写入你的AI密钥。

  1. 启用KV v2引擎(路径名为ai-keys):
   vault secrets enable -path=ai-keys kv-v2
  1. 写入一个AI密钥(例如将OpenAI的API Key存入openai路径):
   vault kv put ai-keys/openai api_key=sk-xxxxxxxxxxxxxxxx
  1. 验证读取:
   vault kv get ai-keys/openai
  1. 同样方式可存入多个平台的密钥(claudeazure等)。

第四步:配置访问策略与客户端使用

为了让你的应用或中转脚本能安全读取密钥,需要创建最少权限的策略。

  1. 创建策略文件 read-ai-keys.hcl
   path "ai-keys/data/*" {
     capabilities = ["read"]
   }
  1. 应用策略:
   vault policy write read-ai-keys read-ai-keys.hcl
  1. 创建一个token(用于客户端):
   vault token create -policy=read-ai-keys

输出包含 token,客户端用此token即可读取密钥。

客户端脚本示例(Python):

import hvac
client = hvac.Client(url='http://127.0.0.1:8200', token='你的token')
secret = client.secrets.kv.v2.read_secret_version(path='openai', mount_point='ai-keys')
api_key = secret['data']['data']['api_key']
print(api_key)

这样你的AI应用只需依赖Vault token,无需硬编码API密钥。

避坑指南

  • 记住unseal key和root token:一旦丢失就彻底无法恢复密钥,建议用密码管理器离线保存。
  • 家用主机关机重启后Vault处于密封状态:每次重启后都要手动执行vault operator unseal并输入Unseal Key。可以配置自动解封脚本(例如利用环境变量),但安全性会降低。
  • 不要在生产环境关闭TLS:家用内网可以临时关闭,但如果暴露到公网必须配置证书和防火墙。
  • 磁盘空间:Raft存储会占用磁盘,定期清理历史版本(vault kv metadata put -max-versions=2 ai-keys/openai)。

效果验证

通过Vault UI(浏览器访问 http://127.0.0.1:8200/ui)可以直接查看已存储的密钥列表(需要root token或具有对应权限的token)。
或者用命令行多次调用vault kv get确认密钥正确返回。
最后在AI调用脚本中替换成从Vault读取的方式,运行一次,确认能正常调用AI服务,即完成密钥中转管理。

如果你后续需要让多台机器共享Vault,可考虑配置集群或使用Consul作为存储后端,本文方法适合单机家用。
实践过程中遇到任何问题,建议先查阅Vault官方文档或社区。

分享到:
上一篇
外贸站宝塔面板网站防爬虫IP黑名单自动拦截
下一篇
跨境独立站宝塔面板服务器硬盘坏道数据抢救
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意