我一直在尝试使用libssh连接服务器并通过SFTP下载文件。我有一个PuTTY私钥文件,包含6行公钥和12个私钥,但我找不到任何体面的帮助或文档来获取这些密钥并使用它们来验证与服务器的连接。有人知道怎么做吗?
到目前为止,我能找到的唯一身份验证选项是我在libssh头文件中找到的:
LIBSSH_API int ssh_userauth_pubkey(ssh_session session, const char *username, ssh_string publickey, ssh_private_key privatekey);
但是,我不知道PuTTY .ppk
文件中的密钥如何转换为公钥的ssh_string
或私钥的ssh_private_key
。< / p>
答案 0 :(得分:0)
请改用ssh_userauth_privatekey_file
,或查看libssh代码以了解其实现方式(内部调用ssh_userauth_pubkey
)。
int ssh_userauth_privatekey_file(ssh_session session,
const char *username,
const char *filename,
const char *passphrase);
您需要convert your .ppk
file to OpenSSH format使用PuTTYgen(转化&gt;导出OpenSSH密钥)。