libssh C++封装(二)

1 概述

  libssh是一个在客户端和服务器端实现SSHv2协议的多平台C库。使用libssh,您可以远程执行程序、传输文件、使用安全透明的隧道、管理公钥等等。本文描述的对libssh客户端功能的C++封装。
libssh下载地址

3 实现

3.1 Session

Session类型管理SSH连接会话

3.1.1 Session定义

class SessionPrivate;typedef unsigned short AuthMethod;
AuthMethod const AuthMethod_Unknow      = 0x0000;
AuthMethod const AuthMethod_None        = 0x0001;
AuthMethod const AuthMethod_PassWord    = 0x0002;
AuthMethod const AuthMethod_PubKey      = 0x0004;
AuthMethod const AuthMethod_Interactive = 0x0008;inline bool isUnknowOfAuthMethod(AuthMethod method)
{return (method & AuthMethod_Unknow) > 0;
}inline bool isNoneOfAuthMethod(AuthMethod method)
{return (method & AuthMethod_None) > 0;
}inline bool isPasswordOfAuthMethod(AuthMethod method)
{return (method & AuthMethod_PassWord) > 0;
}inline bool isPubKeyOfAuthMethod(AuthMethod method)
{return (method & AuthMethod_PubKey) > 0;
}inline bool isInteractiveOfAuthMethod(AuthMethod method)
{return (method & AuthMethod_Interactive) > 0;
}class Session
{
public:Session();~Session();typedef std::shared_ptr<Session> Ptr;void set_host(const char* host);void set_port(int port);void set_port(const char* port);void set_user(const char* user);bool connect(int timeout = 10);void disconnect();bool verify();AuthMethod auth_method(const char *username);bool login(const char* password);bool login(const char* user, const char* password);bool login_by_interactive(const char* user, const char* password);bool login_by_prikey(const char* user, const char* privkeyfile);bool login_by_pubkey(const char* user, const char* pubkeyfile);const char* error();
private:friend class Channel;friend class Scp;friend class SFtp;friend class File;Session(Session const&);Session 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/2699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开放式耳机怎样选性价比高?五大性能出色爆款推荐!

在今年的耳机市场&#xff0c;开放式耳机如雨后春笋般涌现&#xff0c;为消费者提供了更多的选择。在这样一个产品繁多的市场中&#xff0c;如何挑选出一款音质上乘、性能卓越的开放式耳机&#xff0c;确实是一个值得探讨的问题。相较于长时间佩戴传统入耳式耳机可能带来的耳朵…

Jenkins 打包报错记录 error: index-pack died of signal 15

问题背景&#xff0c;打包每次到92%时就会报错&#xff0c;试了好几次都是同样的错误 14:56:53 fatal: index-pack failed 14:56:53 14:56:53 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2734) 14:56:53 at org.jenkinsci.plugi…

【UE 材质】水波纹效果

效果 模拟雨水打落在水面上的效果 步骤 1. 下载所需纹理和纹理 纹理2. 新建一个材质&#xff0c;这里命名为“M_WaterRipples” 打开“M_WaterRipples”&#xff0c;添加一个纹理采样节点&#xff0c;纹理使用第一步下载的纹理 将纹理采样节点的R通道连接到基础颜色&#x…

MySQL、Oracle查看最大连接数和当前连接数

文章目录 1. MySQL2. Oracle 1. MySQL -- 查看最大连接数 show variables like max_connections; select max_connections; -- select * from performance_schema.session_variables where VARIABLE_NAME in (max_connections); -- select * from performance_schema.global…

产品推荐 | 基于Intel (Altera) Cyclone IV 打造的水星Mercury CA1核心板

01 产品概述 水星Mercury CA1核心板结合了Intel Cyclone IV FPGA、通用接口如USB 2.0和Gigabit Ethernet&#xff0c;具备大量的LVDS I/O、大容量DDR2 SDRAM和大量硬件乘法器&#xff0c;这些使得水星CA1核心板非常适合数字信号处理、网络、高速I/O以及使用Intel NiosII软处理…

某酒业集团数字化转型规划(169页附下载)

某酒业集团数字化转型项目实施方案建议书(P169).rar是一个极具参考价值的资料&#xff0c;它详细地阐述了如何利用数字化技术来推动企业转型。这份建议书以IBM的先进技术和某酒业集团的实际应用需求为基础&#xff0c;提出了一套全面、系统的数字化转型解决方案。该方案首先对某…

禅道安装(非docker 版本)(一键部署版)

1.安装包下载地址 https://www.zentao.net/dl/zentao/18.5/ZenTaoPMS.18.5.zbox_64.tar.gzLinux一键安装包内置了Apache、PHP、MySQL和XXD 服务&#xff0c;不需要再单独安装。 2.上传到linux服务器 scp /Users/admin/Downloads/ZenTaoPMS.18.5.zbox_64.tar.gz root192.168.…

java体育馆使用预约平台的设计与实现(springboot+mysql源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的体育馆使用预约平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 体育馆使用预约平台的…

从浏览器内核到Web性能优化:揭秘底层原理与实战技巧

从浏览器内核到Web性能优化&#xff1a;揭秘底层原理与实战技巧 一、浏览器内核与渲染引擎 浏览器内核&#xff0c;也被称为渲染引擎&#xff0c;是浏览器的核心组件&#xff0c;负责解析HTML、CSS和JavaScript&#xff0c;并将这些源代码转换为用户在屏幕上看到的可交互网页…

Win10 打开有些软件主界面会白屏不显示,其他软件都正常

环境&#xff1a; Win10专业版 英伟达4070 显卡 问题描述&#xff1a; Win10 打开有些软件主界面会白屏不显示,打开远程协助软件AIRMdesk,白色&#xff0c;其他软件都正常 解决方案&#xff1a; 网上说电脑没有接显示器独立显卡的关系导致 我是只有一台主机&#xff0c;没…

【QT教程】QT6QFuture与并发

QT6QFuture与并发 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免…

Flask Web框架入门教程

一、Flask简介 Flask是一个轻量级的Web应用框架&#xff0c;使用Python编写。相比于Django等其他大型框架&#xff0c;Flask更加灵活和轻量&#xff0c;非常适合小型到中型的应用开发。它有一个强大的扩展库&#xff0c;可以方便地添加各种功能。 二、安装Flask 你可以使用p…

手撕netty源码(二)- 初始化ServerBootstrap

文章目录 前言一、ServerBootstrap 的创建和初始化1.1 创建1.2 初始化group1.3 初始化channel1.3 初始化option和attr1.4 初始化handler 和 childHandler 总结 前言 接上一篇&#xff1a;手撕netty源码&#xff08;一&#xff09;- NioEventLoopGroup 本篇讲解 ServerBootstra…

项目开发的详细步骤(精华版)

项目开发是指从项目启动到项目交付的全过程&#xff0c;涵盖了需求分析、设计、编码、测试、部署等多个环节。以下为项目开发的详细步骤&#xff1a; 1. 项目启动与规划 项目立项 商业论证&#xff1a;分析项目投资回报率、风险、市场前景等&#xff0c;确定项目价值和可行性…

Vue

文章目录 Vue1. 创建Vue实例2. 插值表达式3. 响应式特性4. 常用指令4.1 内容渲染指令4.2 条件渲染指令4.3 事件绑定指令4.4 单向属性绑定指令4.5 双向属性绑定指令4.6 列表渲染指令 5. 修饰符5.1 事件修饰符5.2 键盘事件修饰符5.3 修饰符串联5.4 v-model 修饰符 6. computed计算…

Android SDK Manager安装Google Play Intel x86 Atom_64 System Image依赖问题

Package Google Play Intel x86 Atom_64 System Image,Android API R, revision 2 depends on SDK Platform Android R Preview, revision 2 问题 一开始以为网络还有依赖包没有勾选&#xff0c;尝试了很多次&#xff0c;勾选这边报错对应的license即可。此时点击一下其他licen…

CountDownLatch使用错误+未最终断开连接导致线程池资源耗尽

错误描述&#xff1a; 我设置了CountDownLatch对线程的协作做出了一些限制&#xff0c;但是我发现运行一段时间以后便发现定时任务不运行了。 具体代码&#xff1a; public void sendToCertainWeb() throws IOException, InterruptedException {List<String> urlList …

(LdAiChat、Ai Loading、不墨AI助手、360AI搜索、TIG AI)分析好用的ChatGPT

目录 1、LdAiChat 2、Ai Loading 3、不墨AI助手 - 会话式AI工具 4、360AI搜索 5、TIG AI

如何利用美国站群服务器实现有效的SEO优化策略?

如何利用美国站群服务器实现有效的SEO优化策略? 在当今数字化时代&#xff0c;SEO优化对于网站的可见性和吸引力至关重要。站群服务器作为一种有效的SEO策略&#xff0c;可以通过多个相关联的网站在不同服务器上的部署&#xff0c;增强网站的权威性和链接多样性。尤其是在利用…

ZYNQ之嵌入式开发04——自定义IP核实现呼吸灯、固化程序

文章目录 自定义IP核——呼吸灯实验固化程序 自定义IP核——呼吸灯实验 Xilinx官方提供了很多IP核&#xff0c;在Vivado的IP Catalog中可以查看这些IP核&#xff0c;在构建自己复杂的系统时&#xff0c;只使用Xilinx官方的免费IP核一般满足不了设计的要求&#xff0c;因此很多…