Jus*_*tin 3 javascript ssh stdin child-process node.js
我有以下Node.js代码ssh到服务器,它很好地转发stdout,但每当我输入任何东西它不转发到服务器.如何将本地stdin转发到ssh连接stdin?
var command = 'ssh -tt -i ' + keyPath + ' -o StrictHostKeyChecking=no ubuntu@' + hostIp;
var ssh = child_proc.exec(command, {
env: process.env
});
ssh.stdout.on('data', function (data) {
console.log(data.toString());
});
ssh.stderr.on('data', function (data) {
console.error(data.toString());
});
ssh.on('exit', function (code) {
process.exit(code);
});
Run Code Online (Sandbox Code Playgroud)
如果要将process.stdin子流程传递给子进程,有两种方法可以实现:
子进程具有stdin表示子进程的标准输入的属性.所以你需要做的就是添加process.stdin.pipe(ssh.stdin)
您可以stdio在生成进程时指定自定义,以告诉它为子进程的stdin使用什么:
child_proc.exec(command, { env: process.env, stdio: [process.stdin, 'pipe', 'pipe'] })
Run Code Online (Sandbox Code Playgroud)此外,在半相关的说明中,如果您想避免产生子进程并且具有更多编程控制和/或具有更轻量级的ssh/sftp连接,则存在该ssh2模块.
| 归档时间: |
|
| 查看次数: |
4047 次 |
| 最近记录: |