首页 > 代码库 > 基于ssh协议免密码的openwrt环境下数据传输及远程指令执行
基于ssh协议免密码的openwrt环境下数据传输及远程指令执行
这个名字起的简直是有点过于装X。
其实,问题很简单,一般情况下,openwrt运行在一些嵌入式平台或者路由器上,而这种平台往往没有太多的资源,如硬盘存储。但一些数据,如流量又只能捕获下来暂时存放于其上,日积月累,如果不把数据拷贝回来并删除openwrt上的,便会造成空间不足。当然在这个过程中,不可避免的要使用一些脚本,用到一些命令,那么,又如何远程执行命令呢。
首先,我用的openwrt是BARRIER BREAKER版本的,其他版本未经测试。
回到问题,怎么解决呢。当然,一种方法是nfs,不过最终没有成功,止步于这个问题:
mount.nfs: No such device
跟这个帖子遇到的问题基本相同,http://www.openwrt.org.cn/bbs/thread-509-1-1.html,cat /proc/filesystems也没有发现nfs的支持,我想我这个系统其实当初是由别人的vmdk上克隆过来的,可能是内核编译的时候没有加上nfs模块吧。不管怎样,这种方法还是放弃!
那么,我们转到第二种方法,使用scp远程往回拷贝。
我们要在脚本中执行scp命令,最大一个问题在于密码怎么办。幸好,有关于scp和ssh的免密码拷贝和登录。可以参考这几篇:
http://it.oyksoft.com/post/1836/ http://www.thegeekstuff.com/2008/06/perform-ssh-and-scp-without-entering-password-on-openssh/ http://www.360doc.com/content/13/1013/21/3884271_321222563.shtml http://blog.csdn.net/shangzhiliang_2008/article/details/8602756
这个过程中,我走了一些弯路,在此写出来,做以小记,也免得看到的人继续走弯路。
很多文档跟上面第一篇一样,上来就是怎样怎样,但是弄了半天,你发现怎么还是不得行,于是这时候你去求助万能的google,找到了第二篇文章,恍然大悟,原来尼玛得要求ssh服务的一方必须是openssh,这就很显而易见了,我们openwrt上提供的是dropbear啊,那怎么办,我们要换ssh服务器吗?
答案当然是no,no,no....这时候我们检索openwrt scp不就行了吗,然后你终于得到了第三篇文档,这个文档很短,但是足以告诉我们在dropbear中应该如何设置。好了,就这样,大功就告成了。之后,在你scp以前,你得知道openwrt上有哪些文件啊,这时候你会用到第四篇文章,对,这样下来,你就可以用脚本很方便的监控拷贝了哦。
基于ssh协议免密码的openwrt环境下数据传输及远程指令执行