產生一組金鑰
ssh-keygen -t rsa -b 4096 -f ca_key -C "My SSH Certificate Authority"
- 會產生兩個檔案
- ca_key
- ca_key.pub
 
公鑰分發到要被登錄的機器上 (sshd server)
/etc/ssh/sshd_config
TrustedUserCAKeys /etc/ssh/ca_key.pub
systemctl restart sshd
產生一組金鑰,做為客戶端的金鑰
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "user@example.com"
- 會產生兩個檔案
- id_ed25519
- id_ed25519.pub
 
用 ca 私鑰與 用戶公鑰簽發證書
ssh-keygen -s ca_key -I "user@example.com-cert" -n user1,user2 -V +52w id_ed25519.pub
- 
-s ca_key: 指定用於簽署的 CA 私鑰。 
- 
-I “user@example.com-cert”: 指定一個證書 ID,用於日誌記錄和審計。 
- 
-n user1,user2: 指定此證書允許登錄的用戶名(如果未指定,則默認為金鑰的註釋部分)。這是 SSH 伺服器在驗證證書時會檢查的用戶名。 
- 
-V +52w: 設置證書的有效期,例如這裡設置為 52 週。 - +52w
- +10m
 
- 
id_ed25519.pub: 要簽署的用戶公鑰文件。 
- 
會產生一個檔案 - id_ed25519-cert.pub
 
將私鑰與證書放在客戶端的 ~/.ssh 目錄下即可登錄
id_ed25519 to client side ~/.ssh/
id_ed25519-cert.pub to client side ~/.ssh/
其它
查看發現的證書內容
$ ssh-keygen -L -f id_ed25519-cert.pub
# out--------------------------------------------
id_ed25519-cert.pub:
        Type: ssh-ed25519-cert-v01@openssh.com user certificate
        Public key: ED25519-CERT SHA256:abvpqWrGyRo6Ubb9u6CFgPldA1O/E8rhws8kmGbFlMc
        Signing CA: RSA SHA256:pzWbZ7jVW8qVYIBbKpRSu1latMeZ/HDs5QkzJ6dFu0I (using rsa-sha2-512)
        Key ID: "user@example.com-cert"
        Serial: 0
        Valid: from 2025-06-09T06:30:00 to 2025-06-09T06:34:53
        Principals:
                root
        Critical Options: (none)
        Extensions:
                permit-X11-forwarding
                permit-agent-forwarding
                permit-port-forwarding
                permit-pty
                permit-user-rc