使用 ShellJs 执行 SSH

Executing SSH with 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。

编辑:link 你们发帖供我参考,而不是我的问题的副本。

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

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