在 Linux 上创建密钥(如 SSH 密钥、GPG 密钥或 TLS 证书密钥),可以根据用途使用不同的命令。以下是常见的密钥创建方法:
---
1. 生成 SSH 密钥
用于 SSH 连接服务器时进行身份验证:
```bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
```
- `-t rsa`:使用 RSA 算法(可换成 `ed25519`、`ecdsa` 等)。
- `-b 4096`:指定密钥长度,RSA 推荐 4096 位。
- `-C "your_email@example.com"`:添加注释,方便识别。
- 默认密钥文件保存在 `~/.ssh/id_rsa` 和 `~/.ssh/id_rsa.pub`。
将公钥复制到远程服务器:
```bash
ssh-copy-id user@remote_host
```
---
2. 生成 GPG 密钥
用于加密邮件、文件签名:
```bash
gpg --full-generate-key
```
- 选择 `RSA` 或 `ECC` 算法。
- 设定密钥长度(推荐 4096)。
- 设定密钥有效期和身份信息。
查看已生成的密钥:
```bash
gpg --list-keys
```
导出公钥(用于共享):
```bash
gpg --export -a "your_email@example.com" > public_key.asc
```
---
3. 生成 TLS/SSL 证书密钥
用于 HTTPS 服务器(如 Nginx、Apache):
```bash
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
```
- 生成私钥文件 `private_key.pem`。
生成证书签名请求(CSR):
```bash
openssl req -new -key private_key.pem -out certificate.csr
```
自签名生成证书(仅用于测试):
```bash
openssl x509 -req -days 365 -in certificate.csr -signkey private_key.pem -out certificate.crt
```
---
4. 生成对称加密密钥
用于 AES 加密:
```bash
openssl rand -base64 32 > aes_key.txt
```
- 生成一个 32 字节(256 位)的密钥文件 `aes_key.txt`,可用于 AES-256 加密。
---
你想生成哪种类型的密钥?