在VB6中使用Chilkat进行SSH;但也许一般

问题描述

我已经编写了SSH应用程序,但是最初使用的库已不再开发,并且具有旧的加密方法。因此,它不适用于现代设备。我正在寻找替代品,但我找到了奇尔卡特。

我能够开始连接到设备(例如Cisco交换机),但是通信行为却很奇怪。

我的程序的基本原理基于通话客户端(我的程序)和服务器(Cisco交换机)。登录完成后,我得到提示,说我将通过命令enable进入特权模式。在提示的结尾处,我会通过符号>来满足此需求。我发送命令启用并等待提示符密码:收到密码后,我将发送密码。我这次使用两个组件和计时器:

success = ssh.ChannelSendString(channelNum,commandToSend & Chr(13),"ansi")

auxStr = ssh.GetReceivedText(channelNum,"ansi")

当我收到密码一词时:在接收文本时,我像commandToSend一样发送密码字符串

但是我得到%访问被拒绝

我非常确定密码可以确定;似乎是通过连接发送了一个额外的回车,因为在下一个返回的文本中是此消息:

正在翻译“ passwordString” ...域服务器(255.255.255.255)

它表示在消息后已将passwordString发送到交换机 % 拒绝访问 不像“密码:”提示的答案。

我在代码中进行了调试,以查看程序要发送的内容以进行切换,但是一切似乎都是正确的。可能在chilkat组件中出现了一些错误?

有人有类似的经历吗?或对此行为做出解释并建议如何解决?

解决方法

发送“ enable”命令(或仅发送“ ena”),然后发送单个CHR(13)。然后从SSH服务器获取输出,该输出应为“ Password:”提示。然后发送密码,然后发送CHR(13)。然后获取输出。发送以单个CHR(13)终止的每个命令,并在每个命令之后获取输出。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...