【发布时间】:2019-09-15 02:03:09
【问题描述】:
我正在尝试生成私钥和公钥对。我想使用私钥对我的 JWT 进行签名并将公钥发送给第 3 方以解码我的 JWT。
在我的 mac os 终端上,我生成了这样的密钥:
ssh-keygen -m PEM -t rsa -b 2048
现在我将 pkey 和 pkey.pub 分别作为私钥和公钥。现在在我的 Rails 控制台中,我尝试像这样获取私钥,效果很好:
rsa_private = OpenSSL::PKey::RSA.new(File.read("/path/to/private/key/pkey"))
rsa_private.to_s
"-----BEGIN RSA PRIVATE KEY-----\nCONTENTS_OF_PKEY_FILE\n-----END RSA PRIVATE KEY-----\n"
现在在 Rails 中,我可以像这样从生成的私钥中获取公钥:
pub_key = rsa_private.public_key
但是当我尝试打印它的内容时,它与我运行 ssh-keygen 命令时生成的 pkey.pub 中的内容不同。
pub_key 看起来像这样:
"-----BEGIN PUBLIC KEY-----\nSOME_CONTENT\n-----END PUBLIC KEY-----\n"
但是我的 pkey.pub 文件看起来不一样,像这样:
ssh-rsa SOME_OTHER_CONTENT user@user.local
那么,我的问题是,我怎样才能为同一个私钥获得 2 个不同的公钥?我使用哪一个来解码我的 JWT?
【问题讨论】:
标签: ruby-on-rails macos openssl ssh-keys