---
title: 使用公钥登录
description: 注册 Ed25519 公钥，让私钥始终留在自己的系统中。
editUrl: true
head: []
template: doc
sidebar:
  order: 3
  hidden: false
  attrs: {}
pagefind: true
draft: false
---

公钥登录适合已经具备密钥管理和签名能力的服务。你在自己的系统中生成 Ed25519 密钥对，只把公钥注册到 Sudomimus；私钥始终由你保管。

如果只是想快速接入一项服务，[访问密钥](/zh-cn/programmatic-access/access-keys/)通常更省事。

## 在网页中生成

macOS、Windows 和 Linux 都可以直接在 With 门户中生成：

1. 打开**程序化访问 → 公钥**，选择**创建**。
2. 选择**在此设备生成密钥对**。
3. 下载私钥文件并保存好。完成下载后，页面才会允许保存公钥。
4. 公钥 JWK 会自动填入表单，不需要手动复制。

生成过程在当前浏览器中完成，提交给 Sudomimus 的只有公钥。

## 在本机命令行生成

已经安装 OpenSSL 时，可以直接生成 Ed25519 私钥及配套的 SPKI 公钥 PEM：

### macOS 与 Linux

在 Terminal 中运行：

```bash
openssl genpkey -algorithm Ed25519 -out sudomimus-ed25519.private.pem
openssl pkey -in sudomimus-ed25519.private.pem -pubout -out sudomimus-ed25519.public.pem
chmod 600 sudomimus-ed25519.private.pem
```

### Windows

在 PowerShell 中运行：

```powershell
openssl genpkey -algorithm Ed25519 -out sudomimus-ed25519.private.pem
openssl pkey -in sudomimus-ed25519.private.pem -pubout -out sudomimus-ed25519.public.pem
```

运行后会得到私钥和公钥两个 PEM 文件。把 `sudomimus-ed25519.public.pem` 的内容粘贴到 With 门户；门户会在当前浏览器中把它转换成 Sudomimus 使用的公钥 JWK。私钥文件交给真正执行任务的服务保存，不要粘贴或上传私钥。

门户也继续接受已有的严格 Ed25519 公钥 JWK `{ "kty": "OKP", "crv": "Ed25519", "x": "..." }`。

## 注册公钥

准备好目标应用或扇区的锚点。然后在 [`with.sudomimus.com`](https://with.sudomimus.com) 中：

1. 打开**程序化访问 → 公钥**。
2. 选择**创建**，填写一个能说明用途的名称。
3. 选择公钥属于你的账户、某个智能体或某个自动化。
4. 在当前设备生成密钥对，或粘贴已有的 Ed25519 公钥 PEM/JWK。不要粘贴私钥。
5. 填写允许使用这把公钥的应用或扇区锚点，并按需设置到期时间。
6. 保存后，让对应服务使用配套私钥完成登录。

目标应用必须支持公钥登录。所需的应用锚点或扇区锚点由应用开发者或组织管理员提供。

## 应用与扇区范围

- 填写**应用锚点**时，公钥只用于列出的应用。
- 填写**扇区锚点**时，公钥可覆盖该扇区中的应用，包括以后加入的应用。

范围决定这把公钥可以尝试登录哪些应用，但不代表它自动拥有应用内权限。注册后不能直接修改范围；需要调整时，创建替代公钥，完成切换后撤销旧公钥。

## 保管与轮换

- 私钥应留在操作系统钥匙串、硬件安全设备或受保护的密钥服务中。
- 不要把私钥粘贴到 With 门户、聊天工具、工单或代码仓库。
- 为不同环境使用不同密钥，避免测试环境泄露影响生产环境。
- 私钥丢失或疑似泄露时，立即撤销对应公钥并注册新公钥。

## 相关阅读

- [选择程序化访问方式](/zh-cn/programmatic-access/overview/)
- [管理访问密钥](/zh-cn/programmatic-access/access-keys/)
- [智能体](/zh-cn/programmatic-access/agents/)与[自动化](/zh-cn/programmatic-access/automations/)