1

我对使用 Ubuntu 9(别无选择)感到怀疑,我在上面安装了 Node.js。

我想使用 SCP(通过 ssh 复制文件)。所以我做了一点节点魔法:

scpHandler = require('child_process').spawn('scp',['root@192.168.2.16:/user/MyDocs/smsOut.txt', 'smsOut2.txt']);

然后似乎有一个问题 - ssh 需要一个密码,我不能通过授权密钥忽略这个问题,因为它们碰巧不能在这个特定的设备 (Maemo) 上工作。

所以我想 - 好吧,我将只使用流式写入,它会解决一切:

scpHandler.stdout.on('data', function(data){
  console.log(data);
  scpHandler.stdin.write('password');
  scpHandler.stdin.write('String.fromCharCode(13)');
});

它应该反映在 scp 显示任何消息之后写入密码(并且它会立即要求输入密码)但是,正如您现在可以猜到的那样,出现了问题并且没有任何事情发生。当sc获得正确的密码时,在成功/不成功传输后应该会显示一些数据,但它仍然在等待密码......请帮助,有什么问题吗?

4

1 回答 1

2

问题已解决:在这种情况下,使用 setTimeout 等待和使用 pty.js 欺骗终端似乎没问题。

于 2013-01-24T09:54:01.140 回答