MENU

SSH 密钥类型

March 16, 2023 • Read: 15 • 技术

GitHub 改变了他们的安全协议,不再允许使用使用 SHA-1 加密算法的 RSA 密钥进行访问,而我目前使用 ssh 默认策略生成的就是这种类型的密钥,结果就是无法提交代码。

一种比较简便的方式是生成 ed25519 替换现有的,且两个密钥是不同的名称,可以共存。

为避免未来出现安全问题,了解一下 SSH 密钥究竟支持哪几种类型。

SSH 密钥类型

在 SSH 中,常见的密钥类型包括以下几种:

  1. RSA:这是最早的 SSH 密钥类型之一,使用 RSA 加密算法。RSA 密钥在 SSH 中被广泛使用,并且是许多 SSH 工具和协议的默认密钥类型。
  2. DSA:这是另一种早期的 SSH 密钥类型,使用 DSA 加密算法。DSA 密钥已被广泛使用,但现在已不建议使用。
  3. ECDSA:这是一种基于椭圆曲线加密算法的 SSH 密钥类型,通常比 RSA 和 DSA 密钥更安全和高效。
  4. ed25519:这是一种基于椭圆曲线加密算法的公钥加密方案,它被广泛应用于 SSH 密钥认证。ed25519 密钥具有更高的安全性和更好的性能,因此在许多情况下被认为是最佳选择。
  5. ECIES:这是一种基于椭圆曲线加密算法的加密方案,可以在 SSH 中使用。ECIES 密钥通常用于加密和解密敏感数据。

在选择使用哪种类型的 SSH 密钥时,需要考虑安全性、性能和应用需求等多种因素。其中 ed25519 密钥被认为是目前最安全和最高效的 SSH 密钥类型之一。

生成方法

当您需要在 SSH 中使用某种类型的密钥时,可以使用命令行工具来生成密钥对。以下是各种类型的 SSH 密钥的生成命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

该命令将生成一个长度为 4096 位的 RSA 密钥,并要求您输入密钥文件名和密码。该命令还将提示您将公钥文件复制到远程主机上。

生成 DSA 密钥:

ssh-keygen -t dsa -b 1024 -C "your_email@example.com"

该命令将生成一个长度为 1024 位的 DSA 密钥,并要求您输入密钥文件名和密码。该命令还将提示您将公钥文件复制到远程主机上。

生成 ECDSA 密钥:

ssh-keygen -t ecdsa -b 521 -C "your_email@example.com"

该命令将生成一个长度为 521 位的 ECDSA 密钥,并要求您输入密钥文件名和密码。该命令还将提示您将公钥文件复制到远程主机上。

生成 ed25519 密钥:

ssh-keygen -t ed25519 -C "your_email@example.com"

该命令将生成一个 ed25519 密钥,并要求您输入密钥文件名和密码。该命令还将提示您将公钥文件复制到远程主机上。

生成 SSH 密钥对后,您可以将公钥文件复制到远程主机上,以便使用私钥进行 SSH 认证。您还可以将公钥文件添加到您的 GitHub 或其他 Git 托管服务的账户设置中,以便进行代码推送和拉取操作。

需要注意的是,不同的 SSH 工具和平台可能会支持不同的密钥格式和类型。在使用 SSH 密钥时,需要确保您的 SSH 工具支持您使用的密钥类型。

总结

综上,建议使用 ed25519 密钥。

Archives QR Code
QR Code for this page
Tipping QR Code