Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用ShellJs执行SSH_Node.js_Ssh_Shelljs - Fatal编程技术网

Node.js 使用ShellJs执行SSH

Node.js 使用ShellJs执行SSH,node.js,ssh,shelljs,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. 那

我一直在使用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


编辑:你们发布的供我参考的链接不是我问题的副本。

SSH并不总是分配一个伪终端。这在本文中得到了解释。您应该添加-tt标志来强制执行此操作


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

我看到了可能的重复,但没有发现它有用。ssh2似乎是正确的选择,但它抛出了这个错误。等待时超时handshake@Satnam在详细模式下运行它。我认为您的SSL配置存在问题,这就是为什么两者都会给您带来问题的原因。