大家千万别再用libssh2这个库了 特别是在windows平台 问题太多 强烈推荐使用libssh这个库 虽然他们的名字很像 但是专业程度真的差远了 我是采过这个坑了 去年的时候 我想给自己开发一个Linux文件资源管理器 类似Windows的explorer.exe 百度搜了C++的库 最多的就是libssh2 他们的代码也很简单 去官网下载下来直接拖到VS2015里就可以编译了 而且网上资料很全 我就用这个库写了一个版本出来 也写完了 有一次我给客户搞东西 突然发现无法登陆了 然后我又下载了winscp这个软件 发现可以正常登陆 而我的就不行 我以为是我代码的问题 所以我就去官网下载了demo 发现不对了 官网的也无法登陆 问题就出在libssh2_session_handshake这个函数上 这个函数就是把套接字和ssh绑定的 意思很明白了 这个库导致很多服务器都无法正常使用的 比如 乌班图系统 以及Centos Stream版本
这个问题我一直没解决 后来我就去尝试libssh这个库 结果出乎我的意料 libssh这个库不存在这些问题 不仅上传速度和winscp一模一样 而且支持所有的操作系统 比如 乌班图 centos 都可以正常连接了 上传速率也不会限速了 也能达到和winscp一抹一样的速度了
所以 如果有想开发Linux的ssh工具的 尽量不要使用libssh2 推荐使用libssh 别的不说 这两个库完全没有可比性 稳定性和兼容性都没法比的