开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 665|回复: 22
收起左侧

[易源码分享] 易语言完善的SSH客户Duan,支持终端交互、SFTP、私钥认证等等

[复制链接]
结帖率:100% (2/2)
发表于 5 天前 | 显示全部楼层 |阅读模式   河南省南阳市
分享源码
界面截图:
是否带模块: 调用了模块
备注说明: -
声明:本帖非完全开源功能,使用其他语言封装了SSH/SFTP的接口,内置了账号验证逻辑代码(可免费使用,无收费打算)。如需想要不限制的DLL或完全源代码可联系我。

我个人感觉算是目前易语言里面比较完善的SSH源码了,完全达到了日常使用需求。开发不易,手下留情,从零开始写了一周多左右,中间也是尝试了其他SSH库,最终还是用标准的SSH封装。



支持功能:
1、SSH多连接,可连接多个SSH服务器,各个SSH服务器数据不冲突。
2、支持SSH终端交互,对的,就是你想的,用户可输入命令,提交到SSH服务器,服务器将操作结果,即时回显。
3、支持私钥证书登录。
4、支持SFTP客户Duan操作,可以随便的上传、下载、创建、删除、修改权限等操作。
5、支持 Ctrl+C 等组合键命令的发送和执行(PS:可能不太完善,但基础的功能支持,有需要的话可以自己去查文档然后进行调整优化)
6、SFTP上传、下载皆支持进度回调,SFTP所有指令操作完毕后均支持回调通知。SFTP所有指令均异步执行,不会卡主线程。
7、支持静态编译、内存加载DLL应该也可以(没测试过)

上截图:
动画.gif




下载地址:https://wweg.lanzouo.com/i2K1O2rok19e


打包发布.001.zip (3 MB, 下载次数: 6)

点评

多谢大佬   广东省深圳市  发表于 4 天前
FinalShell 可以参考他来做 做好了卖钱啊   浙江省杭州市  发表于 5 天前

评分

参与人数 1好评 +1 精币 +2 收起 理由
andyfeifei + 1 + 2 多谢 大佬

查看全部评分


结帖率:100% (2/2)

签到天数: 31 天

 楼主| 发表于 前天 23:07 | 显示全部楼层   河南省南阳市
本帖最后由 781732825 于 2025-3-29 23:19 编辑

由于编写代码的时候没有写太多的备注,现在补充下指令类的相关信息,方便用户二次修改。
1、如果SSH终端显示乱码,请务必使用在连接的时候使用 dumb终端,然后在登入SSH成功后,执行【禁用颜色】或者【export TERM=dumb; exec bash
】用于告诉SSH服务器, 此终端不要颜色代码,请不要输出Ansi颜色编码。这样就不会乱码了。但在vi / nano 编辑器内使用还可能会有些问题,但具体也不研究了,基本够用了。
2、在设置SSH服务器登入信息的时候,请务必删除源码中的编辑框中的默认私钥信息,否则将会以私钥的方式进行登录(有私钥的情况下,用私钥。私钥为空的情况下才会使用密码登录),会导致你登录不上去。

3、ping 等命令,需要使用 Ctrl +C 或者其他按键的时候,请使用【控制命令】进行发送。
4、SSH2_认证_内部认证中使用的【Init_Yz_Cmd (“781732825”, “ab123456”)】,该账号密码,请使用子程序下的 参数 - 账号 , 参数 - 密码,也就是 Use:testtest,密码:testtest123456 进行登录,781732825是我自己的账号,密码可能会在后期进行修改,修改后可能就无法通过认证,需要修改成 testtest 认证,或者你自己通过 Web 认证自己注册一个账号进行认证。


客户Duan发送的指令类型:
list=cha询已连接的SSH会话
disconnect=关闭已连接的SSH会话
command=发送普通指令,如ls / ping / cat等指令,这些命令都是以文本,然后对其进行Base64编码后发送到服务器。
command_control=发送控制组合键指令,如Ctrl+C等,该指令与 command 的区别是,将欲发送的指令,不要识别成文本,直接转成控制编码,然后对其Base64编码发送到服务器(比如说 command 发送的 Ctrl+C , 控制码是 \x03 ,你用 command 发送  \x03 ,它会将  \x03 识别成文本进行BASE64编码,但用 command_control 就会识别成  字节数字 { 3} , 然后进行BASE64编码的结果是 Aw== ,服务器解码 Aw== 就是 Ctrl + C)。
conn=连接SSH服务器,以密码方式登录SSH服务器。
conn_cer=连接SSH服务器,以证书/私钥的方式登录SSH服务器
command_sftp_* = SFTP相关的指令()。



客户Duan收到的回调类指令信息( 处理SSH数据 -> JSON数据中的 type 进行判断指令类型):
通用:conn_id = 客户Duan定义的会话ID编号,任何一个回调函数均有此 conn_id,意思告知那个SSH会话的回调消息。
---------------------------
type=output,SSH会话输出内容(可以理解为SSH交互终端中 显示的内容 或 被更新的新内容 )
type=list ,返回服务器当前已连接的SSH会话列表。
type=error , 错误消息,如:SSH连接失败,密码不正确,SFTP操作失败(设置用户属主ID,属主ID不存在等出现错误的情况)等情况下回调的消息。
type=progress , 进度回调,只在SFTP的上传 / 下载时会进行触发的消息函数,用于告诉你上传或者下载的进度、速度、时间等信息,该progress消息由服务器3秒左右推送一次,如果上传或者下载,在3s内完成则不会触发该progress回调,但会在完成后触发 sftp_response 消息。
type=sftp_response , SFTP进度回调,SFTP相关操作指令完成后进行的回调。比如说  上传、下载、删除、移动、设置权限 等,所有的SFTP指令在操作完毕后都会触发该回调消息。






回复 支持 反对

使用道具 举报

签到天数: 11 天

发表于 17 小时前 | 显示全部楼层   河北省廊坊市

很有价值的帖子,谢谢楼主
回复 支持 反对

使用道具 举报

签到天数: 11 天

发表于 17 小时前 | 显示全部楼层   河北省廊坊市
很有价值的帖子,谢谢楼主!
回复 支持 反对

使用道具 举报

签到天数: 2 天

发表于 17 小时前 | 显示全部楼层   湖北省黄石市
华为交换机连不上,已删除密钥
屏幕截图_2025-03-31_00-08-32.jpg
回复 支持 反对

使用道具 举报

签到天数: 31 天

发表于 昨天 01:17 | 显示全部楼层   北京市北京市
很有价值的帖子,谢谢楼主!
回复 支持 反对

使用道具 举报

签到天数: 26 天

发表于 前天 03:26 | 显示全部楼层   山东省潍坊市
不支持ctrl+c啊

点评

控制命令里面自己选择CTRL+C发送指令。   河南省南阳市  发表于 前天 22:43
回复 支持 反对

使用道具 举报

签到天数: 15 天

发表于 4 天前 | 显示全部楼层   广东省深圳市
我连接不上
QQ截图20250327114739.png

点评

所以你看列表框内你设置的项目就是私钥登陆,因为pass列表是空。cert是有数据的,所以就是证书登陆。你自己确认好登陆方式。   河南省驻马店市  发表于 4 天前
我的私钥没删除。你自己用密码登陆的话,需要删除私钥。如果设置了私钥的话,那你看列表框内就是私钥登陆的而不是密码登陆。   河南省驻马店市  发表于 4 天前
回复 支持 反对

使用道具 举报

签到天数: 28 天

发表于 4 天前 | 显示全部楼层   陕西省咸阳市
感谢大神分享~!
回复 支持 反对

使用道具 举报

结帖率:98% (108/110)

签到天数: 25 天

发表于 4 天前 | 显示全部楼层   山东省青岛市
感谢您对论坛的支持!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表