技术解析

基于现有的 ssh 库,自己实现一个简单的 ssh 应用。
0
2021-06-16 15:40:04
idczone

目前希望使用 C 语言开发一个简单的 ssh 应用(可以登录到主机,发送指令,读到指令的输出)。

用法:sshtest IP PORT USERNAME PASSWORD COMMAND

输出:登录到主机并且执行 COMMAND 后的输出。

目前看到有以下库

libssh:可以实现服务端 /客户端,支持 V1/V2 协议

libssh2:仅实现客户端。

问题:

  1. 已经用 libssh2 实现了,但是在某些主机上(一台华三的交换机)上无法获取到输出,执行过程中无报错,但 libssh2_channel_read()一直返回的是 0 (但前面已经设置为阻塞模式了,按说不应该返回 0 ),有大佬知道吗?

  2. 搜索目前好像用 libssh2 的多一些,为什么?或者那个好?


楼主的问题我也不知道
用 golang 挺简单的 我前前后后写过好几个 ssh tunnel proxy 类型的

感谢,或许我需要变一下思路,考虑下其他语言的。

为啥要自己开发,ssh 就可以这么用啊……
ssh [email&COMMAND

是啊。 而且一般需求都是批量,这也有 pssh

唉,c 开发,为啥要用 ssh 库呢?直接 openssl 它不香吗

ssh 还可以签名证书,限制执行的命令。

ssh 命令就可以这功能

ssh 是个好办法,但有一些缺陷:
1.要是根据反馈再执行相应的命令,那么每次执行要有一个验证过程,影响效率。
2.对于一些设备,命令执行结果很多需要输入回车才会继续显示。
我再研究一下,避免自己开发,使用 ssh 。谢谢大家!

不知道你要干啥
自动化?
ansible -m shell 了解一下?
它还有各种其它模块

是的,自动化。自动登录设备,自动执行一些命令。
ansible 这个看着好强大,目前我用 expect 测试,可以实现交互。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服