我可以交替使用 ssh-keygen 和 cfssl 进行 ssh 登录吗?

问题描述

问这个问题有点尴尬,但问题是:通过 ssh-keygencfssl 生成公钥/私钥有什么区别?

我已成功使用 ssh-keygen 创建可用于通过 ssh 连接到服务器的发布/私钥凭据。我还成功地使用 cfssl 为网站创建了私钥和证书。但是,我似乎无法弄清楚如何使用 cfssl 来完成 ssh-keygen 所做的事情。

由于它们都可用于生成公钥/私钥 RSA 4096 密钥,因此它们似乎可以互换使用。不幸的是,无论我尝试了多少不同的组合,或者我在互联网上搜索了多少,我似乎都找不到一个有效的例子。

我开始认为,关于每个工具的加密方法,我根本不了解某些东西。

stackoverflow 的人...请怜悯我,请指出我的方法错误。非常感谢您的帮助。

解决方法

不,这两种类型的键不可互换。 RSA 是一种用于加密和数字签名的算法。它用于 TLS(用于网站)和 SSH,但这两种协议虽然都支持 RSA 密钥,但使用的算法不同。

协议指定了一种(希望是安全的)技术来使用标准算法并使用它来保护数据,并且有许多使用 RSA 对数据进行签名的安全方法,这些方法因协议而异。同样,TLS 和 SSH 都可以使用 AES-GCM 来加密和验证数据,但它们的使用方式不同。

此外,即使您可以为另一个生成密钥,您通常也不希望将密钥重复用于不同的目的。这是因为在某些情况下,攻击者可以在一种协议中捕获有效消息并在另一种协议中使用它来冒充合法方。

请注意,OpenSSH 和 TLS 实现通常使用的私钥格式通常相同,但公钥格式不同。 SSH 公钥看起来与用于 TLS 的 X.509 公钥完全不同。

如果您需要创建用于 SSH 的密钥,则应使用 ssh-keygen,如果您需要创建用于 Web 服务器或其他 TLS 服务器的密钥,请使用工具,例如 { {1}} 或 openssl