SSH 密钥生成器

公钥(authorized_keys 格式)
下一步

直接在浏览器中生成 RSA SSH 密钥对。选择密钥长度(2048、3072 或 4096 位)和可选的注释;工具会输出私钥,以及可直接粘贴到 ~/.ssh/authorized_keys 的公钥。一切都在你的浏览器中运行,因此任何密钥都不会离开你的设备。若需要现代的 Ed25519 密钥,或想用口令保护密钥,请在你自己的机器上运行 ssh-keygen。

如何生成密钥对

  1. 1

    选择密钥长度

    RSA 3072 位是推荐的默认值:既强健又处处兼容。2048 位更快,且仍被广泛接受;4096 位最为保守,但速度较慢。

  2. 2

    添加注释

    通常是 `user@host` 或简短描述。它会附加到公钥上,方便你在 `authorized_keys` 文件中辨认。

  3. 3

    生成密钥对

    密钥在你的浏览器中创建,绝不会上传。密钥长度越大,计算所需时间略长。

  4. 4

    复制或下载

    PEM 格式的私钥(`-----BEGIN RSA PRIVATE KEY-----`)和单行的公钥(`ssh-rsa AAAA...`)。请对私钥保密。

如何选择密钥长度

密钥长度 速度 安全性 适用场景
RSA 2048 快 足够(相当于 112 位) 你想要最快的生成速度
RSA 3072 中等 强健(相当于 128 位) 面向大多数用途的推荐默认值
RSA 4096 较慢 非常强健,多数情况下属于过度 你想要一把保守、长期使用的密钥

本工具生成 RSA 密钥,任何 SSH 服务器都能接受。RSA 3072 已相当于 128 位对称强度,日常使用绰绰有余;4096 更大、生成更慢,却并不明显更安全。

更想要现代的 Ed25519 密钥?它比 RSA 更短、更快,但这里不会生成。请在你自己的机器上用 ssh-keygen -t ed25519 创建。

你会得到什么

工具会输出两段文本,均在你的浏览器中生成:

  • 私钥,PEM 格式,以 -----BEGIN RSA PRIVATE KEY----- 开头。请对其保密,切勿分享。它在生成时不带口令;如需加密,请在本地用 ssh-keygen -p -f id_rsa 添加口令。
  • 公钥,单行,采用 OpenSSH 的 authorized_keys 格式:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQAB... user@laptop

三个字段分别是算法名称(ssh-rsa)、Base64 编码的密钥数据,以及你可选的注释。

密钥管理提示

  • 让私钥保持私密。 明文私钥一旦被窃取就前功尽弃。请以严格的权限保存,并为重要用途添加口令。
  • 每个用途一把密钥。 为每个服务(GitHub、GitLab、生产、预发布)各用一把密钥,让单次泄露的影响范围受限。
  • 人员离开时轮换。 当有人离开时,从每个 authorized_keys 文件中删除其公钥。
  • 绝不发送私钥。 只分享公钥。请牢记这一点。
  • 保留加密的备份。 丢失密钥的唯一副本,可能让你被锁在所有信任它的服务器之外。

公钥放在哪里

  • Linux/Unix: 服务器上的 ~/.ssh/authorized_keys,每行一把密钥,文件权限 0600,目录权限 0700。
  • GitHub/GitLab/Bitbucket: 账户设置中的 SSH 密钥部分。
  • AWS EC2: 导入的密钥对,在实例启动时绑定。
  • Azure/GCP: 项目或实例的 SSH 设置。

常见问题

如果你信任该页面(通过 HTTPS 提供、来自你能核实的主机),那么是安全的。密钥对在你的浏览器中计算,任何密钥都不会上传到任何服务器。话虽如此,在你自己的机器上运行 ssh-keygen 仍是黄金标准,因为它能避免浏览器层面的任何被攻破风险。

不能。本工具只创建 RSA 密钥。若需要现代的 Ed25519 密钥,请在你自己的机器上运行 ssh-keygen -t ed25519;它比 RSA 更短、更快,且被当前所有 SSH 服务器支持。

其实不必。RSA 3072 已相当于 128 位对称强度,绰绰有余。4096 更慢、更大,却并不明显更安全,因此 3072 才是推荐的默认值。

如果你还能用密码登录,就使用 ssh-copy-id user@host。否则,通过云控制台或其他访问方式,手动把公钥追加到服务器上的 ~/.ssh/authorized_keys。

相关工具

此工具还提供其他语言版本