升级SSH密钥使用ED25519

2021-04-25 • 预计阅读时间 1 分钟

背景

近日OpenSSH发布了最新的OpenSSH 8.6/8.6p1 (2021-04-19)。由于对SHA-1算法的碰撞攻击的成本已经低于5万美元。之前的版本中ssh-rsa使用的是sha-1哈希算法与RSA公钥算法结合使用。新的版本中完全禁止了。另外还提供了UpdateHostKeys的选项来升级使用旧算法的密钥。

官方推荐了三种算法的密钥

  • rsa-sha2-256/512. since 7.2
  • ssh-ed25519 since 6.5
  • ecdsa-sha2-nistp256/384/521. since 5.2

最后选择使用了ED25519。一个是支持的版本比较广,对于一些旧的机器支持相对好一些。ED25519公钥更为紧凑,仅68个字符。生成密钥和签名的过程都非常快,使用ED25519进行批量签名验证也很快。它是为防碰撞而设计的,防哈希冲突。

生成ED25519密钥

ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519 -C "admin@wentao.org"

参数说明:

  • -o : 使用新的OpenSSH格式来存储私钥,当使用ED25519格式时,默认会启用此选项
  • -a : 进行几轮KDF。值越大则密码验证越慢,也能更好的抗暴力破解。
  • -t : 创建的key的类型,我们使用ED25519
  • -f : 生成的文件名
  • -C : 可选注释,通常写自己的邮箱或者是备注信息用来区分密钥

已经把自己的机器都升级到ED25519

devssh

wentao

写点代码,解决点问题。

Traefik使用ZeroSSL替换LetsEncrypt生成SSL证书

记录一切