Skip to content

Commit 0017bda

Browse files
committed
dev/ssh: Make client/server CA more clear
1 parent d9bfb9e commit 0017bda

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

docs/dev/ssh.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,7 @@ OpenSSH 支持使用证书作为客户端和服务端的身份验证方式,即
485485

486486
总的来说,对于中小规模的社团和实验室服务器管理场景,(对管理员)使用 SSH 证书认证是个较为方便易用的方式。
487487

488-
与 X.509 证书类似,客户端通过证书信任服务端和服务端通过证书认证客户端是两件独立的事,在实际应用中也可以根据需求使用同一个 CA 或分别使用不同的 CA。
488+
与 X.509 证书类似,**客户端通过证书信任服务端和服务端通过证书认证客户端是两件独立的事,在实际应用中也可以根据需求使用同一个 CA 或分别使用不同的 CA**。以下分别以「服务端 CA」和「客户端 CA」指代为服务端/客户端签发证书的 CA。
489489

490490
### 创建 SSH CA {#ssh-ca}
491491

@@ -503,17 +503,17 @@ ssh-keygen -f my_ca [-t ed25519] [-C 'My CA'] [-N 'my-ca-p@ssw0rd']
503503

504504
### 服务端证书 {#server-certificates}
505505

506-
首先,客户端需要信任 CA 签发的证书,方法是在 `known_hosts` 文件中加入 CA 的公钥,并在公钥前添加选项 `@cert-authority *`,例如;
506+
首先,客户端需要信任服务端 CA 签发的证书,方法是在 `known_hosts` 文件中加入服务端 CA 的公钥,并在公钥前添加选项 `@cert-authority *`,例如;
507507

508508
```text title="~/.ssh/known_hosts"
509509
@cert-authority * ssh-ed25519 AAAAC3N... My CA
510510
```
511511

512-
对于实验室等公用机器的场景,也可以将 CA 条目配置在 `/etc/ssh/ssh_known_hosts` 文件中,其会对所有用户生效,而无需再为每个用户单独配置。
512+
对于实验室等公用机器的场景,也可以将服务端 CA 条目配置在 `/etc/ssh/ssh_known_hosts` 文件中,其会对所有用户生效,而无需再为每个用户单独配置。
513513

514514
#### 配置服务端证书 {#create-server-certificates}
515515

516-
签发服务端证书需要使用 CA 私钥和对应服务端的**公钥**
516+
签发服务端证书需要使用服务端 CA 私钥和对应服务端的**公钥**
517517

518518
```shell
519519
ssh-keygen -s my_ca -I myserver.example.com -h -n myserver.example.com [-V validity] [-z serial] ssh_host_ed25519_key.pub
@@ -538,11 +538,11 @@ HostKey /etc/ssh/ssh_host_ed25519_key
538538
HostCertificate /etc/ssh/ssh_host_ed25519_key-cert.pub
539539
```
540540

541-
在 reload 或重启 sshd 服务后,服务端就会在握手时发送证书给客户端。若客户端也正确配置了 CA 信任,则无需将服务端的公钥预先加入 `known_hosts` 文件即可完成验证。
541+
在 reload 或重启 sshd 服务后,服务端就会在握手时发送证书给客户端。若客户端也正确配置了服务端 CA 信任,则无需将服务端的公钥预先加入 `known_hosts` 文件即可完成验证。
542542

543543
### 客户端证书 {#client-certificates}
544544

545-
首先为服务端配置 CA 信任,需要在服务端建立一个“信任 CA 列表”文件。其采用通常的 `authorized_keys` 格式,即每行一个公钥。我们建议使用一个约定俗成、易于辨认的路径 `/etc/ssh/ssh_user_ca`
545+
首先为服务端配置客户端 CA 信任,需要在服务端建立一个“信任 CA 列表”文件。其采用通常的 `authorized_keys` 格式,即每行一个公钥。我们建议使用一个约定俗成、易于辨认的路径 `/etc/ssh/ssh_user_ca`
546546

547547
```text title="/etc/ssh/ssh_user_ca"
548548
ssh-ed25519 AAAAC3N... My org CA
@@ -556,7 +556,7 @@ TrustedUserCAKeys /etc/ssh/ssh_user_ca
556556

557557
#### 签发客户端证书 {#sign-client-certificates}
558558

559-
与服务端证书类似,签发客户端证书需要使用 CA 私钥和对应客户端的**公钥**
559+
与服务端证书类似,签发客户端证书需要使用客户端 CA 私钥和对应客户端的**公钥**
560560

561561
```shell
562562
ssh-keygen -s my_ca -I 'User 1' -n user1 [-V validity] [-z serial] [-O options] ~/.ssh/id_ed25519.pub

0 commit comments

Comments
 (0)