SSH 密钥生成器(Ed25519、RSA)
生成 OpenSSH 格式的 Ed25519 或 RSA SSH 密钥对。
Ed25519 是现在的默认选择:密钥短小,当前的 SSH 服务器、GitHub 和 GitLab 都接受。
有了 SSH 密钥对,就可以不用密码登录服务器、向 GitHub 或 GitLab 推送代码:公钥放在服务器上,私钥留在你自己手里。本工具使用浏览器的 Web Crypto,生成与 ssh-keygen 相同的文件——id_ed25519 和 id_ed25519.pub,RSA 则为 id_rsa。密钥在你的设备上生成,不会上传或保存;免费,无需注册。
如何生成 SSH 密钥
- 选择 Ed25519(推荐),旧服务器可选 RSA,并添加一条注释,例如 you@laptop。
- 点“生成 SSH 密钥”。
- 把两个文件都下载到 ~/.ssh,然后运行 chmod 600 ~/.ssh/id_ed25519。
- 把公钥行添加到服务器的 ~/.ssh/authorized_keys,或添加到你的 GitHub 账户。
功能
- Ed25519(默认)、RSA 3072 或 RSA 4096
- 与 ssh-keygen 输出相同的 OpenSSH 文件:id_ed25519 和 id_ed25519.pub,或 id_rsa 和 id_rsa.pub
- SHA256 指纹,与 ssh-keygen -l 的输出一致
- 可选注释,例如 you@laptop;修改注释会为同一把密钥重写两个文件
- 每个文件都可复制或下载,并附有后续步骤和添加密码短语的 ssh-keygen 命令
- 由浏览器内置的 Web Crypto 生成
隐私安全吗?
是的。密钥由浏览器的 Web Crypto 生成,只存在于本页:不会上传或保存任何内容。离开或刷新页面之前,请下载两个文件。
常见问题
这和 ssh-keygen 生成的密钥一样吗?
一样,采用相同的 OpenSSH 格式。ssh-keygen -y -f id_ed25519 会输出相同的公钥行,ssh-keygen -l -f id_ed25519 会输出与这里显示的相同的指纹(已用 OpenSSH 9.6 对 Ed25519 和 RSA 进行验证)。
如何添加密码短语?
生成的密钥不带密码短语。保存后,运行 ssh-keygen -p -f ~/.ssh/id_ed25519 并输入新的密码短语:ssh-keygen 会直接加密该文件。
应该选 Ed25519 还是 RSA?
选 Ed25519:它短小、快速,OpenSSH 6.5 及以上版本、GitHub 和 GitLab 都支持。在这里生成它需要 Chrome 137+、Firefox 129+ 或 Safari 17+。对于不支持 Ed25519 的旧系统,或在较旧的浏览器中,请选择 RSA(3072 或 4096 位)。
如何把密钥添加到 GitHub?
复制公钥行(id_ed25519.pub 的内容),粘贴到 GitHub 的 Settings → SSH and GPG keys → New SSH key 中。私钥保存在 ~/.ssh 之后,运行 ssh -T git@github.com,就会看到用你的用户名打的招呼。
为什么 ssh 提示权限过于开放?
OpenSSH 会拒绝其他用户可读的私钥文件。运行 chmod 600 ~/.ssh/id_ed25519,并将 ~/.ssh 文件夹的权限保持为 chmod 700。