2015-05-22 22 views
5

Bất cứ ai có thể giúp tôi, cách ngắt kết nối ssh bằng cách sử dụng nút-ssh module trong nút js. Ngoài ra làm thế nào để xử lý lỗi.Làm thế nào để ngắt kết nối ssh bằng cách sử dụng nút-ssh trong nút js

mã của tôi là

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

    }); 

Xin vui lòng giúp đỡ.

Trả lời

4

Trình bao bọc 'nút-ssh' dường như không cung cấp chức năng 'kết thúc' hoặc một cách để truy cập đối tượng kết nối ssh2 bên dưới. Điều đó khiến bạn có một vài tùy chọn:

Ngắt source, viết phương thức 'kết thúc' và đưa yêu cầu kéo đến trình bao bọc nút-ssh để người dùng trong tương lai có thể sử dụng trình bao bọc và kết thúc kết nối. Ngoài ra, bạn có thể tạo một issue và đợi người khác tạo chức năng nếu/khi thấy cần thiết.

Sử dụng thư viện cơ bản ssh2 thay thế. Nó cho thấy nhiều chức năng hơn cho bạn, bao gồm một phương thức 'kết thúc', để đóng kết nối, nhưng sử dụng các cuộc gọi lại thay vì lời hứa, điều này sẽ yêu cầu bạn cấu trúc lại mã của bạn. Ngoài ra, bạn có thể thêm mã sau vào mã của mình, mặc dù đây là rất không được đề xuất vì nó gây rối với nguyên mẫu bạn không sở hữu và có thể hủy tương thích với các phiên bản tương lai của mô-đun nút-ssh:

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

bạn có thể gọi ssh.end() để đóng kết nối.

+0

Có điều này hiện đang hoạt động. cảm ơn rất nhiều cody haines – selvan

2

Tôi đã hỏi trực tiếp tác giả của thư viện, ở đây tôi báo cáo câu trả lời:

"Lưu ý: Nếu bất cứ điều gì của đối tượng SSH2 không được thực hiện và tôi đang dành thời gian nhiều hơn tôi nên, Bạn có thể luôn sử dụng MySSH.Connection.close() "

Issue#9

Sau đó, ông đã thực hiện một cam kết và bây giờ bạn có phương pháp của bạn!

ssh.end(); 
2

Sử dụng phương pháp dispose. Ví dụ:

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(); 
}); 
Các vấn đề liên quan