内容
# 凭证库
**为 AI 编程助手提供的安全凭证库。**
在加密库中存储服务器凭证(SSH),让您的 AI 助手(通过 MCP)部署到服务器 **,而无需在 LLM 环境中暴露密码或私钥**。
[](LICENSE)
[](https://dolutech.com)
> 由 [Dolutech](https://dolutech.com) 构建 - 为开发者提供安全的基设施工具。
---
## 工作原理
```
您:“部署到服务器 PROD 1:运行 docker compose up -d”
AI 助手 ──MCP──► credential-vault ──SSH──► 服务器 PROD 1
(内部读取凭证 (执行命令)
,永不暴露)
AI 助手 ◄────── 只返回 stdout/stderr(无凭证)
```
AI 永远不会看到密码、私钥或库内容。库通过 SSH 内部连接,只返回命令输出。
---
## 主要功能
- **零凭证暴露** — 密码和私钥永远不会在 LLM 环境中出现
- **AES-256-GCM 加密** — 静止状态下的认证加密
- **Argon2id 密钥派生** — 抵抗 GPU/ASIC 暴力攻击
- **MCP 服务器** — 与任何 MCP 兼容的 AI 助手集成(opencode、Claude Code、Claude Desktop、Cursor、Windsurf、Zed、Continue、Cline 等)
- **简单 CLI** — 添加、列出、删除和提供凭证
- **跨平台** — Linux(Arch、Debian/Ubuntu、RHEL/Fedora)、macOS、Windows
- **单个二进制文件** — 无运行时依赖,只需编译和运行
- **多个 SSH 身份验证方法** — 密码、私钥(带可选密码)、私钥文件路径、SSH 证书
---
## 平台支持
| 操作系统 | 架构 | 状态 |
|---|---|---|
| Linux(Arch、Debian、Ubuntu、RHEL、Fedora 等) | amd64 | ✅ 支持 |
| Linux(Arch、Debian、Ubuntu、RHEL、Fedora 等) | arm64 | ✅ 支持 |
| macOS(Intel) | amd64 | ✅ 支持 |
| macOS(Apple Silicon) | arm64 | ✅ 支持 |
| Windows | amd64 | ✅ 支持 |
| Windows | arm64 | ✅ 支持 |
### 默认库文件位置
| 操作系统 | 路径 |
|---|---|
| Linux | `$XDG_CONFIG_HOME/credential-vault/vault.json`(默认:`~/.config/credential-vault/vault.json`) |
| macOS | `~/Library/Application Support/credential-vault/vault.json` |
| Windows | `%AppData%\credential-vault\vault.json` |
---
## 快速入门
### 安装
**选项 A — 从源代码构建(所有平台):**
```bash
git clone https://github.com/dolutech/credential-vault.git
cd credential-vault
go build -o credential-vault ./cmd/credential-vault
```
**选项 B — 安装脚本(Linux 和 macOS):**
```bash
git clone https://github.com/dolutech/credential-vault.git
cd credential-vault
./scripts/install.sh
```
**选项 C — 使用 Make(跨平台构建):**
```bash
make build # 为当前平台构建
make build-all # 为所有平台构建
make release # 在 dist/ 中创建发布存档
```
### 初始化库
```bash
./credential-vault init
# 设置您的主密码
```
### 添加服务器
```bash
./credential-vault add "服务器 PROD 1"
# 填写主机、端口、用户、密码(交互式提示)
```
### 在您的 AI 助手中配置
在您的配置中添加 MCP 服务器(参见 [docs/MCP_CONFIG.md](docs/MCP_CONFIG.md)):
```json
{
"mcp": {
"credential-vault": {
"type": "local",
"command": ["/path/to/credential-vault", "serve"],
"enabled": true,
"environment": {
"VAULT_PASSWORD": "您的主密码"
}
}
}
}
```
### 使用
```
您:“部署到服务器 PROD 1:运行 docker compose pull && docker compose up -d”
→ AI 调用 MCP “deploy” 工具
→ 库通过 SSH 内部连接
→ 只返回命令输出
```
---
## CLI 命令
| 命令 | 描述 |
|---|---|
| `credential-vault init` | 初始化新库(设置主密码) |
| `credential-vault add <名称>` | 添加或更新服务器(交互模式) |
| `credential-vault list` | 列出已注册的服务器(永不显示凭证) |
| `credential-vault delete <名称>` | 从库中删除服务器 |
| `credential-vault serve` | 为 AI 助手启动 MCP 服务器(stdio) |
| `credential-vault --version` | 显示版本 |
| `credential-vault help` | 显示帮助 |
### 环境变量
| 变量 | 必需 | 描述 |
|---|---|---|
| `VAULT_PASSWORD` | 是(用于 `serve`) | 解密库的主密码 |
| `VAULT_PATH` | 否 | 库文件路径(默认:特定于 OS,参见 [平台支持](#平台支持)) |
---
## MCP 工具
库向 AI 助手公开了 4 种工具:
| 工具 | 描述 | 暴露凭证? |
|---|---|:---:|
| `list_servers` | 列出服务器名称 + 描述 | 否 |
| `get_connection_info` | 返回主机、端口、用户(无密码) | 否 |
| `deploy` | SSH 连接到服务器并运行部署命令 | 否 |
| `ssh_exec` | SSH 连接到服务器并运行任何命令 | 否 |
---
## 安全
### AI 永远不会看到
- 密码
- 私钥
- 库文件内容
- 主密码
### AI 看到的内容
- 服务器名称和描述
- 主机、端口和用户(通过 `get_connection_info`)
- 命令输出(stdout/stderr)
### 凭证如何保护
1. **静止状态**:AES-256-GCM + Argon2id(64MB,3 次迭代)
2. **传输中**:主密码通过环境变量(不是 CLI 参数,不是 `ps`)
3. **从 LLM**:库通过 SSH 内部连接 - 凭证永远不会离开进程
4. **SSH 主机验证**:服务器主机密钥与 `~/.ssh/known_hosts` 验证
---
## 项目结构
```
credential-vault/
├── cmd/credential-vault/ # 入口点
├── internal/
│ ├── crypto/ # AES-256-GCM + Argon2id
│ ├── store/ # 加密库存储(跨平台路径)
│ ├── cli/ # CLI 命令
│ ├── mcpserver/ # MCP 服务器(工具)
│ └── sshclient/ # 用于部署的 SSH 客户端
├── tests/integtest/ # 集成测试
├── scripts/
│ └── install.sh # 安装脚本(Linux 和 macOS)
├── docs/
│ ├── USAGE_GUIDE.md # 实用步骤指南 - 安装、添加服务器、部署、日常使用示例、故障排除
│ ├── CREDENTIAL_VAULT_PLAN.md # 架构和实现计划
│ └── MCP_CONFIG.md # 配置指南(所有 AI 助手)
├── Makefile # 构建、测试、发布目标
├── LICENSE # MIT 许可证
├── go.mod
└── go.sum
```
---
## 依赖项
| 依赖项 | 用途 |
|---|---|
| `github.com/modelcontextprotocol/go-sdk` | 官方 MCP Go SDK |
| `golang.org/x/crypto/argon2` | Argon2id 密钥派生 |
| `golang.org/x/crypto/ssh` | SSH 客户端 |
| `golang.org/x/crypto/ssh/knownhosts` | SSH 主机密钥验证 |
| `golang.org/x/term` | 隐藏密码输入(跨平台) |
---
## 开发
```bash
# 构建
make build
# 运行测试
make test
# 运行 go vet
make vet
# 为所有平台构建
make build-all
# 创建发布存档
make release
```
---
## 文档
| 文档 | 描述 |
|---|---|
| [使用指南](docs/USAGE_GUIDE.md) | 实用步骤指南 - 安装、添加服务器、部署、日常使用示例、故障排除 |
| [MCP 配置指南](docs/MCP_CONFIG.md) | 如何在 opencode、Claude Code、Claude Desktop、Cursor、Windsurf、Zed、Continue、Cline 中配置 |
| [架构和实现计划](docs/CREDENTIAL_VAULT_PLAN.md) | 技术架构、安全设计、模块细节、数据流 |
---
## 许可证
MIT 许可证 - 参见 [LICENSE](LICENSE)
版权 (c) 2026 [Dolutech](https://dolutech.com)
---
## 关于
由 [Dolutech](https://dolutech.com) 构建和维护。
访问我们的博客: [dolutech.com](https://dolutech.com)