2015-05-22 17 views
5

में नोड-एसएसएच का उपयोग करके एसएसएच कनेक्शन को डिस्कनेक्ट करने के लिए कैसे कोई मेरी मदद कर सकता है, नोड जेएस में नोड-एसएसएच मॉड्यूल का उपयोग करके एसएसएच कनेक्शन डिस्कनेक्ट कैसे कर सकता है। त्रुटि को कैसे संभालें।नोड जेएस

मेरी कोड

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); 

    }); 

Pls मदद करते हैं।

उत्तर

4

'नोड-एसएसएच' रैपर 'एंड' फ़ंक्शन प्रदान नहीं करता है, या अंतर्निहित एसएस 2 कनेक्शन ऑब्जेक्ट तक पहुंचने का एक तरीका प्रतीत नहीं होता है। इससे आपको कुछ विकल्प मिलते हैं:

फोर्क source, 'अंत' विधि लिखें, और नोड-एसएसएच रैपर को पुल अनुरोध जारी करें ताकि भविष्य के उपयोगकर्ता रैपर का उपयोग कर सकें और कनेक्शन समाप्त कर सकें। वैकल्पिक रूप से, आप issue बना सकते हैं और किसी और के लिए कार्यक्षमता बनाने के लिए प्रतीक्षा कर सकते हैं यदि उन्हें आवश्यक समझा जाता है।

इसके बजाय अंतर्निहित ssh2 लाइब्रेरी का उपयोग करें। यह कनेक्शन को बंद करने के लिए 'अंत' विधि सहित आपके लिए बहुत अधिक कार्यक्षमता का खुलासा करता है, लेकिन वादे के बजाए कॉलबैक का उपयोग करता है, जिसके लिए आपको अपने कोड को दोबारा करने की आवश्यकता होगी।

साथ ही, आप अपने कोड के लिए निम्न है, हालांकि यह बहुत भारी अनुशंसित नहीं, जोड़ सकता है के रूप में यह एक प्रोटोटाइप आपकी नहीं है और नोड ssh मॉड्यूल के भविष्य के संस्करणों के साथ संगतता को बर्बाद कर सकती के साथ खिलवाड़ कर रहा है:

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

फिर आप कनेक्शन को बंद करने के लिए ssh.end() पर कॉल कर सकते हैं।

+0

हाँ यह अब काम कर रहा है। बहुत बहुत कोडी हैन्स धन्यवाद – selvan

2

मैं सीधे पुस्तकालय के निर्माता को कहा है, यहाँ मैं जवाब की रिपोर्ट:

"ध्यान दें: SSH2 वस्तु का कुछ भी लागू नहीं किया गया तो और मैं की तुलना में मैं चाहिए और अधिक समय ले रहा हूँ, तुम हमेशा कर सकते हैं का उपयोग MySSH.Connection.close() "

Issue#9

फिर वह एक प्रतिबद्ध किया है और अब आप अपने विधि है!

ssh.end(); 
2

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(); 
});