如何通过在节点js中使用node-ssh断开ssh连接
任何人都可以帮助我,如何断开节点js中使用node-ssh模块的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); });
请帮助。
'node-ssh'包装似乎不提供'结束'function,或者访问底层ssh2连接对象的方式。 这让你有几个select:
分叉源代码 ,编写一个'end'方法,并向node-ssh包装器发出pull请求,以便将来的用户可以使用wrapper并结束连接。 或者,您可以创build问题,并等待其他人在他们认为有必要时创buildfunction。
改为使用底层的ssh2库。 它暴露了更多的function给你,包括一个'结束'方法,closures连接,但使用callback而不是承诺,这将需要你重构你的代码。
另外,您可以将以下内容添加到您的代码中,尽pipe这是非常不推荐的 ,因为它与您不拥有的原型相混淆,并可能会破坏未来版本的node-ssh模块的兼容性:
driver.prototype.end = function() { this.Connection.end() this.Connected = false }
你可以调用ssh.end()
来closures连接。
我直接问了图书馆的创build者,在这里我报告了答案:
“注意:如果ssh2对象的任何内容没有被执行,并且我比我应该花更多的时间,你总是可以使用MySSH.Connection.close()
”
问题#9
然后他做了一个承诺,现在你有你的方法!
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(); });
- 根据MongoDB检查login凭据不起作用
- 与pg-promise的嵌套查询
- Webpack minification -p错误
- 如何用绝对path来build立index.html引用资源?
- 所有Schema的模式方法 – Mongoose方法的inheritance
- JHipster应用程序的node.js REST客户端
- 错误:“ReactFifteenAdapter.js”中找不到模块'react-dom / test-utils'“,对于jest-styled-componentsconfiguration,使用了React 15.4.1
- 看到错误模块未find:“pg-native”在heroku应用程序
- Node.js和socket.io在Cloud9 IDE上不起作用