如何在C语言程序中使用SSH

 我来答
风若远去何人留
2018-01-12 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450126
专业C/C++软件开发

向TA提问 私信TA
展开全部
1、这种功能用脚本实现最好
2、最好弄成dsa公钥验证方式,也就是ssh无密码登录
3、ssh的密码输入是绑定到TTY而不是stdin的,所以无法重定向(到管道)
3.1、如果想通过程序输入ssh密码,那么就要模拟TTY,或者让ssh认为你的输入是直接来自TTY
3.2、或者,你干脆自己实现个最简单的ssh协议吧
3.3、程序模拟TTY,一般会直接采用expact库,这在脚本里面很方便,但由于C处理字符串过于笨拙……
4、登录之后,和ssh交互需要通过管道进行。用写来模拟控制台键入字符,用读来取命令输出数据;至于命令返回值……读 echo $? 的输出吧
5、如果命令本身也有输入/输出提示,比如 rm xxx 会让你按y什么的,那么你必须自己捕捉到这个提示,然后往管道写一个"Y\n"进去。所以……也许还是expect方便。
6、你可以搞一个脚本,在脚本里用expect完成登录动作,然后下interact命令进入交互模式;然后在C里面用popen()执行这个脚本,这样就可以避开登录问题,但仍然要处理命令行交互问题(也就是回答are you sure之类的问题,当然这可以通过为命令传入-y之类参数来绕开,不过有些命令未必支持)。
阿狸的桃子sr
2016-12-22 · TA获得超过188个赞
知道小有建树答主
回答量:541
采纳率:0%
帮助的人:70.9万
展开全部
简单的说,编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程。 计算机虽然功能十分强大。可以供你上网、打游戏、管理公司人事关系等等,但是没有程序,它就等于是一堆废铁,不会理会我们对它下达的“命令”。于是,我们要驯服它,只有通过一种方式——程序,这也是我们和计算机沟通的唯一方式。 那程序到底是什么呢? 程序也就是指令的集合,它告诉计算机如何执行特殊的任务。 打个比方说,它好比指导你烹调菜品的菜谱或指挥行驶一路到达目的地的交警(或者交通路标)。没有这些特殊的指令,就不能执行预期的任务。计算机也一样,当你想让计算机为你做一件事情的时候,计算机本身并不能主动为我们工作,因此我们必须对它下达指令,而它根本
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式