我对使用Ubuntu 9(无选择)感到怀疑,并且在上面安装了Node.js。
我想使用SCP(用于通过ssh复制文件)。所以我做了一点节点魔术:
scpHandler = require('child_process').spawn('scp',['[email protected]:/user/MyDocs/smsOut.txt', 'smsOut2.txt']);
然后似乎出现了问题-ssh需要密码,我无法通过authorization_keys忽略该问题,因为它们碰巧在此特定设备(Maemo)上无法正常工作。
所以我想-好吧,我将使用流编写,它将解决所有问题:
scpHandler.stdout.on('data', function(data){
console.log(data);
scpHandler.stdin.write('password');
scpHandler.stdin.write('String.fromCharCode(13)');
});
在scp显示任何消息后,它应该反射(reflect)出写密码(并立即要求输入密码),但是,正如您到现在都可以猜到的那样,出了点问题,没有发生任何事情。当sc获得正确的密码后,成功/不成功的传输后应该显示一些数据,但是它仍在等待密码...请帮助,有什么想法吗?
最佳答案
解决的问题:在这种情况下,使用setTimeout等待和使用pty.js欺骗终端似乎是可以的。