javascript - 使用 libssh 从消息中提取 SSH 公钥

标签 javascript c++ node.js ssh rsa

我正在使用 node-libssh作为我的 Node 应用程序中与 libssh 的良好绑定(bind),并且可以很容易地模拟 ssh 服务器。但是我需要从传入的 SSH session 中提取公钥。我需要一个字符串化版本的 key 供以后在数据库查询中使用,并且它必须与您在 id_rsa.pub 文件中找到的格式匹配。

我已经能够将它缩小到需要一种在 libssh ssh_key 与 char 数组之间进行转换的方法。

使用 ssh_key pubKey = ssh_message_auth_pubkey(message); 获取公钥的 ssh_key 版本非常简单,但是 libssh 中似乎没有方法可以转换从 ssh_key 转换为可以传回我的 nodejs 进程的任何其他格式。我预见到这样的解决方案:

ssh_key authKey = ssh_message_auth_pubkey(m->message);
const char *pubKey = ssh_key_to_char(authKey);
if (pubKey)
  instance->Set(NanSymbol("pubKey"), v8::String::New(pubKey));

但自然不会那么简单,因为不存在方法 ssh_key_to_char,我非常感谢这里的任何指示。

最佳答案

经过一段时间的挖掘,我找到了可以用来构建此功能的方法:

ssh_pki_export_pubkey_base64(ssh_key, char*)

这会将 ssh_key 转换为其 base64 等价物。

关于javascript - 使用 libssh 从消息中提取 SSH 公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26520780/

相关文章:

angularjs - Node JS MongoDB POST 错误

node.js - MongoError : Invalid Operation, 没有批量操作

c++ - 数字序列的 MD5 散列

java - 将 Java 转换为 C++

node.js - nodejs session 只存储 json?

javascript - 在循环的每次迭代中等待 async .done()

c# - 用于使用 C#、C++/CLI 和非托管 C++ 的应用程序的内存分析工具

javascript - 如果我们设置未定义的值会发生什么?

javascript - Node : Process a 2D array of promises

javascript - 如何按顺序显示div中的段落和图像?