---
title: "登录 ERPC CLI 并查看密钥的保存位置"
description: "让本机登录您的 ERPC 账户，选择 ERPC CLI 保存会话的位置，并查看节点密钥和 erpc 写入的文件保存在哪里。"
canonical: "https://erpc.global/zh/doc/erpc-cli/sign-in-and-keys/"
locale: "zh"
---

# 登录 ERPC CLI 并查看密钥的保存位置

让本机登录后，ERPC CLI 会将会话保存在您的钥匙串或 1Password 中。本页还介绍节点密钥保存在哪里，以及 erpc 保留哪些文件。

本页介绍 ERPC CLI `v0.1.0-rc.4`，这是一个预发布版本。

## 登录

```bash
erpc signup     # opens the sign-up page
erpc login      # signs this machine in; the session goes to the keychain or 1Password
erpc whoami
```

`erpc login` 通过 OAuth 设备授权许可获取会话。在没有浏览器的机器上，`erpc login --no-browser` 会打印 URL 和代码，而不是打开浏览器；`erpc signup --no-browser` 会打印注册 URL。`erpc whoami` 显示已保存的会话属于谁，`erpc logout` 会退出登录并删除已保存的会话。

## 选择会话的保存位置

在终端中，`erpc login` 会询问使用哪个保存位置：操作系统的钥匙串（默认），或 1Password（在其有响应时）。`--store` 和 `--vault` 可不经询问直接选择，所选结果会记录在 `config.toml` 中，其他命令会从那里读取。

| `--store` | 会话的保存位置 |
| --- | --- |
| `keychain` | 操作系统的钥匙串 |
| `1password-desktop`（也可写作 `1password`、`op`） | 1Password，通过桌面应用程序 |
| `1password-service-account` | 1Password，通过服务账户令牌 |
| `file` | 磁盘上的文件。这会在本机留下一个 Secret |

如果既没有指定也没有记录选择，erpc 会在设置了 `OP_SERVICE_ACCOUNT_TOKEN` 时使用 1Password 服务账户，否则在有操作系统钥匙串时使用钥匙串，再否则使用其状态目录中的文件。`erpc doctor` 会报告正在使用哪个保存位置及其原因。使用服务账户时，erpc 只将 `OP_SERVICE_ACCOUNT_TOKEN` 传给它自己启动的 `op` 进程，不会将该令牌写入任何地方。

1Password 条目以机器名命名，因此两台机器绝不会共用同一个会话。`ERPC_HOST_LABEL` 可覆盖该名称。

### 在 Linux 上

在有 Secret Service 响应的环境中，钥匙串就是 Secret Service。否则它是内核为您的用户提供的持久密钥环，位于内存中，从不写入磁盘：会话一直有效，直到重启或连续几天未使用，之后会再次要求运行 `erpc login`。没有经过自身登录而启动的 shell（不带 `-` 的 `su`、`sudo -E`）无法使用该密钥环，erpc 会拒绝，并说明这一点。

### 在 macOS 上

erpc 通过 `/usr/bin/security` 访问钥匙串。以您的身份运行的任何其他程序，同样可以通过运行 `security` 读取会话；不过钥匙串仍会在静态存储时加密会话，并使其不被其他用户访问。

### 会话位于磁盘上时

erpc 会在三种情况下将会话写入其状态目录：使用 `file` 保存位置时；对于暂存的会话（无法到达保存位置的已轮换刷新令牌）；以及写入被中断之后。只要这类文件存在，`erpc doctor` 就会逐一报告。在 Unix 上，这些文件以 `0600` 权限模式创建；在 Windows 上，erpc 不设置自己的权限。

## 节点密钥的保存位置

节点清单，以及各链指南中指明的原始密钥备份，都保存在 1Password 中。并非所有密钥都在 1Password 中，节点可能持有其运行所需的密钥。请自行备份主机上的内容：在没有备份的情况下重装该主机，会丢失这些内容。此外，活跃的 Sui validator 或已当选的 TRON witness 会拒绝迁移到新主机。

| 节点 | 在 1Password 中 | 在主机上 |
| --- | --- | --- |
| Solana validator（原生） | 您创建的身份密钥和同步密钥对。投票账户和提款权限仅以公钥形式提供给 erpc | 同步密钥对，针对该主机加密；从 `--activate-validator` 起，身份密钥也在主机上。投票账户和提款密钥从不导入 |
| Solana validator（solv） | 已质押的身份密钥，以及提款权限（除非您只提供其公钥）。投票账户密钥在账户验证后即被删除 | 一个明文的临时 `unstaked-identity.json`。部署从不将已质押的密钥或提款权限复制到节点 |
| Solana RPC（原生） | 您创建的身份密钥 | 同一身份密钥，针对该主机加密 |
| Solana RPC（solv） | 清单 | 身份密钥，在主机上创建。它从不离开主机 |
| Ethereum validator | 清单 | 密钥库、其解锁密码和罚没历史。备份中的历史止于其快照，因此恢复一个在快照之后签过名的密钥可能会被罚没：请使用 `erpc v --chain eth migrate` 迁移签名者 |
| Arc RPC | 共识密钥 | 共识密钥，已加密 |
| Avalanche | 质押密钥和 BLS 密钥的备份 | 同样的密钥，在首次部署时于主机上创建 |
| Sui validator | 协议密钥、网络密钥和 worker 密钥，在您自己的机器上创建 | 同样的三个密钥，使用 `systemd-creds` 针对该主机加密。从不包含账户密钥 |
| Sui 全节点 | 清单 | 网络凭据，针对该主机加密。没有其他副本 |
| TRON witness | 加密的密钥库及其密码 | 同样的内容，以加密的 systemd 凭据形式保存 |
| Polygon validator | `init` 生成的签名者密钥。从不要求提供质押所有者的密钥 | 同一密钥，针对该主机加密。在节点仅观察期间，它以单独的身份运行 |
| BNB Chain validator | 签名材料和对等节点身份的备份 | 共识密钥位于加密的密钥库中，投票密钥位于加密的钱包中，它们的密码针对该主机加密 |
| Kaia validator（共识节点或代理节点） | 节点身份的备份 | 节点身份，在主机上创建并针对该主机加密。运营者的钱包留在 erpc 之外 |
| Monad 节点（RPC 或 validator） | 两个原始密钥库 | 同样的密钥库，针对该主机加密 |
| Hyperliquid validator | 热共识密钥。从不要求提供冷账户的密钥 | 热密钥，针对该主机加密，且只由已激活的 validator 单元加载 |
| Hyperliquid AQA publisher | 其专用的 API key 或 agent 密钥 | 同一密钥，针对该主机加密 |
| NEAR validator | 共识密钥 | 同一密钥，针对该主机加密 |
| Arbitrum validator | `init` 生成的钱包，以及提供方凭据 | 提供方凭据，已加密；从 `--activate-signer` 起，钱包也在主机上，归 root 所有并已加密 |
| Robinhood Chain validator | `init` 生成的钱包，以及提供方配置 | 提供方配置，已加密；从 `--activate-signer` 起，钱包也在主机上，归 root 所有并已加密 |
| OP 系列 RPC | 清单和提供方的值 | 提供方凭据、引擎 JWT 和对等节点身份，已加密。请备份所有者记录和主机的加密 Secret |
| Nitro RPC | 清单和上游凭据 | 上游凭据，已加密 |

其他 RPC 节点不持有 validator 的签名密钥，但它们的主机会保存客户端为自身生成的内容，例如引擎 JWT、对等节点身份或 RPC cookie。

仅有密钥备份并不能确保 validator 恢复的安全。在更换服务器或恢复其数据之前，请遵循该链的恢复流程；各链的指南说明了如何恢复其密钥（[节点](https://erpc.global/zh/doc/erpc-cli/nodes/#链与指南)）。

只有一个命令会将节点密钥写入您本机的磁盘：`erpc validator vote-account` 在 Solana CLI 运行期间，将身份密钥和投票密钥写入状态目录下权限为 `0600` 的文件中，并在之后将其擦除。如果进程意外终止，文件可能会一直留存，直到之后的某次运行将其清理。

`erpc worker` 应用的交易密钥和 Secret 与这些密钥分开保存：[密钥与 Secret](https://erpc.global/zh/doc/erpc-cli/worker-secrets/)。

## erpc 保留的文件

| 路径 | 内容 |
| --- | --- |
| `~/.erpc/config.toml` | 公开设置（`erpc config`） |
| `~/.erpc/state/` | 会话和锁（`erpc doctor` 会说明会话的保存方式） |
| `~/.erpc/conversations/` | 已保存的 ERPC AI 对话 |
| `~/.erpc/memory.json` | ERPC AI 记住的内容 |
| `~/.erpc/vps_hosts.json` | ERPC AI 登录过的 VPS 的主机密钥 |
| `~/.erpc/skills/` | 由 `erpc skills install` 写入的技能 |
| `~/.erpc/storage-key` | 存储加密密钥，在 `erpc login` 将会话保存在文件中时 |
| `~/.erpc/backup-password`, `~/.erpc/backup-admin-key` | 备份主密码和 `read_write` 密钥，在 `erpc login` 将会话保存在文件中时 |
| `~/.erpc/keystore/` | worker 密钥库：在既没有 1Password 也没有可持久保存的钥匙串的机器上，应用的 Secret 和交易密钥，各自保存在一个以您的密码短语加密的文件中 |
| `~/.erpc/workers.toml` | 本机上的 `erpc worker` 应用列表 |
| `~/.erpc/backup.env` | 本机的备份凭据（`0600`） |
| `~/.erpc/bin/restic-0.19.1` | `erpc backup` 安装的固定版本 restic |
