Node.js 如何在node js中使用node ssh断开ssh连接
谁能帮我一下,如何在NodeJS中使用NodeSSH模块断开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').
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();
});
@阿莫里德接受的答案无论如何都是一个笑话,它们几乎永远不会改变,而且往往不是最好的解决方案。。。例子: