跳到正文
马克工具箱

SSH 密钥生成器

在浏览器里生成 SSH 密钥对,可以直接用于服务器登录、GitHub、GitLab 部署密钥。支持 Ed25519、RSA 和 ECDSA,同时给出 OpenSSH 格式和 PEM 格式。密钥由浏览器的 WebCrypto 在本地生成,不会发送到任何服务器。

在浏览器本地运行,输入的内容和文件都不会上传

短小、快速、安全。OpenSSH 6.5 以上、GitHub、GitLab 和绝大多数服务器都支持。

使用步骤

  1. 选择密钥类型,一般选 Ed25519;需要兼容很老的系统时选 RSA 4096。
  2. 可以填写备注(例如邮箱或电脑名),方便在服务器上区分不同的密钥。
  3. 点「生成密钥对」。把公钥添加到服务器的 ~/.ssh/authorized_keys 或 GitHub 的 SSH keys 设置里。
  4. 下载私钥保存到 ~/.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 私钥文件,会输出对应的公钥,可以和页面上的公钥核对。

隐私说明

本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。

相关工具