Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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 如何在node js中使用node ssh断开ssh连接_Node.js - Fatal编程技术网

Node.js 如何在node js中使用node ssh断开ssh连接

Node.js 如何在node js中使用node ssh断开ssh连接,node.js,Node.js,谁能帮我一下,如何在NodeJS中使用NodeSSH模块断开ssh连接。还有如何处理错误 我的代码是 driver = require('node-ssh'); ssh = new driver({ host: '192.168.*.*', username: 'user', password: 'password', privateKey : require('fs').

谁能帮我一下,如何在NodeJS中使用NodeSSH模块断开ssh连接。还有如何处理错误

我的代码是

 driver = require('node-ssh');

    ssh = new driver({
              host: '192.168.*.*',
              username: 'user',
              password: 'password',
              privateKey : require('fs').readFileSync('/tmp/my_key')
            });

    ssh.connect().then(function() {
           /*
       some code
        */

            },function(error) {
                console.log(error);

    });

请提供帮助。

节点ssh包装器似乎没有提供“结束”功能,也没有提供访问底层ssh2连接对象的方法。这给您留下了两个选择:

Fork,编写一个“end”方法,并向节点ssh包装发出pull请求,以便将来的用户可以使用包装并结束连接。或者,您可以创建一个,并等待其他人在他们认为必要时创建该功能

改为使用基础库。它向您公开了更多的功能,包括“end”方法来关闭连接,但使用回调而不是承诺,这需要您重构代码

此外,您可以将以下内容添加到代码中,尽管这是非常不推荐的,因为它会干扰您不拥有的原型,并可能破坏与未来版本的节点ssh模块的兼容性:

driver.prototype.end = function() {
  this.Connection.end()
  this.Connected = false
}

然后可以调用
ssh.end()
来关闭连接

我直接询问了图书馆的创建者,我在这里报告了答案:

“注意:如果ssh2对象的任何内容没有实现,并且我花费的时间超过了我应该花费的时间,您可以始终使用
MySSH.Connection.close()

然后他做了一个提交,现在你有了你的方法

ssh.end();

使用
dispose
方法。例如:

const node_ssh = require('node-ssh');
const ssh = new node_ssh();

ssh.connect({
  host: 'XXX',
  username: 'YYY',
  privateKey: 'ZZZ'
}).then(resp => {
  console.log(resp);
  ssh.dispose();
});

@阿莫里德接受的答案无论如何都是一个笑话,它们几乎永远不会改变,而且往往不是最好的解决方案。。。例子: