我正在使用 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/