使用ShellJs执行SSH

时间:2017-12-10 14:59:46

标签: node.js ssh shelljs

我一直在使用shelljs来执行某些命令集。所以我试图通过shelljs通过ssh连接到远程ubuntu服务器。 这是我的nodejs文件。

var shelljs = require('shelljs');
shelljs.exec('ssh -i [path/to/pem/file] ubuntu@[taregt_ip]');

但是我收到了这个错误:

Pseudo-terminal will not be allocated because stdin is not a terminal.

那么如何解决这个问题,或者是否有任何其他实用程序可以通过一个命令连接到ssh。

编辑:你们发帖给我的链接,不是我的问题的副本。

1 个答案:

答案 0 :(得分:1)

SSH并不总是分配伪终端。这在existing answer中有解释。您应该添加-tt标志以强制执行此操作。

那就是说,我不会用shelljs来做ssh。由于您只是执行本地二进制文件,此解决方案a)不可移植,b)不知道如何解析错误或处理意外输出。我过去曾使用ssh2进行类似项目,因为它有一个交互式SSH选项,可以很容易地从SSH连接创建流(STDOUT和STDIN)。