节点中的远程文件访问或samba服务器的替代方法

时间:2015-05-12 12:11:11

标签: node.js express

我想访问远程系统文件夹,必须对该特定文件夹执行读取和删除操作。

我有用户名和密码。

远程位置的IP为192.168.1。*** 用户名:root和密码:password

离。替代Linux中的samba服务器。 注意:它不是网络服务器,所以没有可用的网址

1 个答案:

答案 0 :(得分:0)

您将需要在该系统上执行远程命令。我建议使用ssh来执行此操作并使用sshpass来处理密码协商。不是最安全,但最简单的快速做事方式。您可以使用以下命令安装sshpass(在Ubuntu中):

sudo apt-get install sshpass

然后,在你的程序中,使用exec启动远程命令:

var exec = require('child_process').exec;

var CommandArguments = [
        'sshpass',                  //specify sshpass as command we are issuing
        '-p',                       //tells sshpass next parm is password
        'password',                 //the password for plc
        'ssh',                      //command to issue command to PLC over network
        '-o',                       //option flag
        'StrictHostKeyChecking=no', //tell ssh not to care about RSA key checking
        'root@192.168.1.**',        //specify username and IP
        'ls',                       //command to issue
        '/home'                     //parameters for command to issue
    ];

//kick off install process
var child = exec(CommandArguments.join(" "), function(error, stdout, stderr){
    console.log("error: ", error);
    console.log("stdout: ", stdout);
    console.log("stderr: ", stderr);
    });

上面的代码使用'密码'以root身份登录到服务器192.168.1。**作为密码并列出远程服务器上的目录/ home。

你只需要更换' ls'具有特定命令和所需命令参数的数组中的后续元素。从这里开始,您应该可以在远程系统的终端上执行任何操作。