node ssh2 shell无法在远程机器上运行apt-get install

我在node.js中执行一个程序,将我的代码从git部署到服务器(Digital Ocean)。 我通过ssh2模块连接到服务器,并通过shell运行命令,如下图所示:

var Client = require('ssh2').Client; var conn = new Client(); conn.on('ready', function() { console.log('Client :: ready'); conn.shell(function(err, stream) { if (err) throw err; stream.on('close', function() { console.log('Stream :: close'); conn.end(); }).on('data', function(data) { console.log('STDOUT: ' + data); }).stderr.on('data', function(data) { console.log('STDERR: ' + data); }); stream.end('sudo apt-get update -y\nsudo apt-get install -y build-essential\nexit\n'); }); }).connect({ host: 'xxxx', port: 22, username: 'yyy', privateKey: 'zzz' }); 

命令“apt-get update”工作正常,但命令“apt-get install build-essential”(我尝试安装其他程序,如vim和curl)似乎冻结了输出最后一行的stream。 我认为这可能是由apt-get的提示符“Y / n”引起的,但我找不到解决方法。 有人知道如何处理它?

尝试使用&&更改\n

 stream.end('sudo apt-get update -y && sudo apt-get install -y build-essential && exit');