gpt4 book ai didi

ruby-on-rails - 使用私钥和公钥的 API 身份验证

转载 作者:行者123 更新时间:2023-12-04 03:43:35 26 4
gpt4 key购买 nike

我想在 CLI 中使用 Web API 以与 SSH 类似的方式授权用户(在服务器上上传公钥,然后使用私钥进行授权)。是否可以?

我不是要生成公钥/私钥 par,而是重新使用现有的 id_rsa 和 id_rsa.pub。

你知道有什么软件包可以让它更容易(最好是 Ruby on Rails gems?)

@编辑:

具体来说,我想登录网站,上传我的公钥并将其与在线帐户连接,然后能够通过CLI界面使用网站的API(身份验证)。

最佳答案

您可以使用 openssl 库。至于您想要的更完整的解决方案,我认为它不可用。不应该太多的工作来实现库。

http://ruby-doc.org/stdlib-1.9.2/libdoc/openssl/rdoc/OpenSSL/PKey/RSA.html

基本上做这样的事情:

# private_key_str can be in PEM or DER format
OpenSSL::PKey::RSA.new(private_key_str, 'passphrase').public_key

并将其与公钥进行比较。您可以使用 #to_pem 或 #to_der 获取 key 的字符串表示形式,具体取决于您使用的格式(稍微玩一下)。您也可以使用 rsa 库。

我想你可以用
ssh-keygen -e -f id_rsa.pub > pemkey.pub

从 ssh-keygen 的默认格式转换为 PEM。如有必要,您可以在服务器上运行此命令进行转换 - 您必须尝试正确匹配格式,因为我不确定 OpenSSL::PKey::RSA 是否接受 ssh 的默认格式-keygen。您还可以让 ssh-keygen 从 STDIN 读取并写入 STDOUT,这样您就不需要使用文件来进行转换。

关于ruby-on-rails - 使用私钥和公钥的 API 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13269829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com