我正在使用node-libssh作为我的节点应用程序中与libssh的很好的绑定(bind),并且可以非常轻松地模拟ssh服务器。但是,我需要从传入的SSH session 中提取公钥。我需要密钥的字符串化版本,以便以后在db查询中使用,它必须与在id_rsa.pub文件中找到的格式相同。
我已经能够缩小到需要一种在libssh ssh_key
和char数组之间转换的方法。
它很简单,可以使用ssh_key pubKey = ssh_message_auth_pubkey(message);
来获取pubkey的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。