在 2022 年生成 SSH 公钥

在加密方式的选择上, RSA 4096 曾经是常用的选择, 但随着时间的推移, 它逐渐被淘汰, 取而代之的是更安全、更高效的 Ed25519。如今, GitHub 和大多数平台都建议尽可能使用 Ed25519

生成 Ed25519 密钥对

生成 Ed25519 密钥对的命令如下

ssh-keygen -t ed25519 -C "your_email@example.com"

默认轮数为 16。如果你需要提高密钥的安全性, 可以使用 -a 参数增加轮数, 但请注意, 增加轮数会导致密钥生成和验证的速度变慢, 登录时可能会出现延迟。默认值为 16, 通常不超过 1 秒的登录时间, 而值 150 或更大可能会增加几秒或更多的延迟。轮数越高, 登录速度可能会受到更大影响

例如, 使用 100 轮生成密钥对

ssh-keygen -t ed25519 -a 100 -C "your_email@example.com"

生成 RSA 密钥对

虽然 RSA 4096 仍然被某些系统使用, 但不推荐在新系统中使用。对于大多数用户, Ed25519 是更好的选择。如果你仍然想使用 RSA 4096, 可以使用以下命令

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

如果不指定参数, ssh-keygen 默认生成 RSA 2048 密钥

ssh-keygen -C "your_email@example.com"

将公钥复制到远程服务器 ssh-copy-id

将生成的公钥复制到远程机器上, 使用 ssh-copy-id 命令。一般情况下, 不需要指定 -i 参数, 除非你想使用特定的公钥文件

ssh-copy-id -i .ssh/id_ed25519.pub user@192.168.0.1

这样, 公钥就会被复制到远程服务器的 ~/.ssh/authorized_keys 文件中, 从而实现无密码登录


原文

Why use -t rsa -b 4096 with ssh-keygen?

最后更新于 2022-04-11
使用 Hugo 构建
主题 StackJimmy 设计