javascript - Ubuntu 9 上的 Node.js + SCP + stdin.write

标签 javascript node.js ssh scp

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

我想使用 SCP(通过 ssh 复制文件)。所以我做了一些 Node 魔术:

scpHandler = require('child_process').spawn('scp',['root@192.168.2.16:/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)');
});

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

最佳答案

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

关于javascript - Ubuntu 9 上的 Node.js + SCP + stdin.write,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14457528/

相关文章:

javascript - 在 Node.js 中加载 Angular 模块时出错

ssh - iTerm2:使用CMD + click通过SSH快速下载

javascript - 测试 IE11 中的正则表达式编译功能

php - 在 JIT SpaceTree 中加载节点

node.js - 在 Windows 中发送 SIGUSR1 IPC

javascript - 如何等到检索到某些值然后继续计算

javascript - 获取带有延迟对象的异步请求的请求参数

javascript - 添加/删除克隆第一行默认不删除

php - 无论如何我都无法处理 SSH 连接错误

git - 通过 ssh : permission denied 推送到个人 git repo