openssl、ssh-keygen 和 cfssl 之间的区别

Posted

技术标签:

【中文标题】openssl、ssh-keygen 和 cfssl 之间的区别【英文标题】:Difference between openssl, ssh-keygen and cfssl 【发布时间】:2020-03-07 09:49:04 【问题描述】:

我可以使用来自 openssl、ssh-keygen 和 cfssl 的任何工具来为 kubernetes 组件创建 SSH 证书或 TLS 证书吗?使用这三个工具有什么区别吗?这些工具生成的密钥/证书是否相同?

【问题讨论】:

我会使用 openssl 生成您的 TLS 证书,使用 ssh-keygen 生成 SSH 密钥。我对cfssl 不熟悉,但它可能可用于 TLS 生成。也就是说,openssl 非常强大,可以根据您的要求生成 TLS 和 ssh 密钥,但不常用于 SSH 密钥。 【参考方案1】:

从 kubernetes 的角度来看,请查看有关使用 openssl 以及可能更高级的 cfssl here 的文档。

注意:

所有使用这些证书的 Kubernetes 组件——kubelet、kube-apiserver、kube-controller-manager——都假定密钥和证书是 PEM 编码的。

我不是这方面的专家,但您可以查看以下社区帖子:

Certificate standards

differences between ssh generated keys(ssh-keygen) and OpenSSL keys (PEM)

pem file from ssh key pair

Introducing CFSSL

certificate convertion

Certificates Convertion

如何在 SSH 中使用 X.509? X.509 证书用作密钥存储:该软件不以专有格式保存 SSH 密钥,而是将密钥保存在 X.509 证书中。完成 SSH 密钥交换后,将从证书中获取密钥。

注意 - 使用 X.509 证书的优势:

X.509 certificate 包含公钥和身份(主机名、组织或个人),并且由证书颁发机构签名或自签名。当证书由受信任的证书颁发机构签名或通过其他方式验证时,持有该证书的人可以依靠它包含的公钥与另一方建立安全通信,或验证由相应私钥进行数字签名的文档。

希望得到帮助:

【讨论】:

以上是关于openssl、ssh-keygen 和 cfssl 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

使用 OpenSSL 和公钥 ssh-keygen 为 SSH 生成私钥

使用 ssh-keygen / OpenSSL 生成 SSH 密钥

ssh(不是openssh) 做无密码登陆,怎么每次ssh 登陆还是要输入密码呀?

ssh-keygen命令详解

Linux 命令(208)—— ssh-keygen 命令

Linux 命令(208)—— ssh-keygen 命令