使用步骤
- 选择密钥类型,一般选 Ed25519;需要兼容很老的系统时选 RSA 4096。
- 可以填写备注(例如邮箱或电脑名),方便在服务器上区分不同的密钥。
- 点「生成密钥对」。把公钥添加到服务器的 ~/.ssh/authorized_keys 或 GitHub 的 SSH keys 设置里。
- 下载私钥保存到 ~/.ssh/ 目录,并执行 chmod 600 设置权限。
参数说明
- Ed25519
- 基于 Curve25519 的签名算法,公钥只有 68 个字符,安全性相当于 RSA 3072 以上,速度快,是目前的首选。
- RSA
- 兼容性最好。2048 位是最低要求,OpenSSH 目前默认 3072 位,4096 位更保守但生成稍慢。
- 输出格式
- 公钥为 OpenSSH 单行格式;私钥为 OpenSSH 格式(与 ssh-keygen 生成的 id_ed25519、id_rsa 相同),另附 PEM 格式(PKCS#8 私钥、SPKI 公钥)供其他程序使用。
- 指纹
- SHA256 指纹,与 ssh-keygen -lf 和 GitHub 设置页显示的一致,可以用来核对密钥。
添加到服务器
# 把公钥追加到服务器上
echo "ssh-ed25519 AAAA... me@laptop" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 本地保存私钥后
chmod 600 ~/.ssh/id_ed25519
ssh -i ~/.ssh/id_ed25519 user@server
常见问题
在网页上生成密钥安全吗?
密钥由浏览器内置的 WebCrypto 接口生成,使用系统的安全随机数,全过程在本地完成,页面不会上传任何内容,断网也能用。对于特别敏感的用途,仍建议在自己的电脑上用 ssh-keygen 生成。
私钥为什么没有密码?
浏览器生成的是未加密私钥。保存后可以执行 ssh-keygen -p -f ~/.ssh/id_ed25519 为它设置密码。
Windows 能用吗?
可以。Windows 10/11 自带 OpenSSH 客户端,把私钥保存到 C:\Users\你的用户名\.ssh\ 下即可。PuTTY 需要先用 PuTTYgen 把私钥转换成 .ppk 格式。
公钥和私钥怎么对应?
执行 ssh-keygen -y -f 私钥文件,会输出对应的公钥,可以和页面上的公钥核对。
隐私说明
本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。