2016-11-16 58 views
0

我有一個正在用於連接到設備的類。我在類的實例在我的應用程序進行Javascript - 在ssh2連接中訪問密碼

app.js

myConn = new myConnection(); 

myConnection.js

function myConnection(){  
    this.settings = { 
     host: '192.168.225.195', 
     port: 22, 
     username: 'sysadmin', 
     password: 'pass' 
    }; 
} 

我在所述函數類的遠程設備上執行的命令但需要密碼。發生這種情況時,stderr.on被執行,我發送密碼和一個換行符字符。

myConnection.prototype.installPatch = function(callback){ 
    this.conn.exec('sudo -S bash /tmp/update.sh', function(err, stream){ 
     var standardMsgs = ''; 
     var errorMsgs = ''; 
     if(err) throw err; 
     stream.on('close', function(code, signal) {     
      callback(standardMsgs, errorMsgs);  
     }).on('data', function(data) { 
      standardMsgs += "<br>" + data; 
      console.log('STDOUT: ' + data);    
     }).stderr.on('data', function(data) { 
      errorMsgs += data; 
      console.log('STDERR: ' + data); 
      stream.write(myConn.conn.config.password + '\n'); 
     }); 
    });  
} 

雖然這個作品我不是因爲在app.js更改名稱「的myconn」與

stream.write(myConn.conn.config.password + '\n'); 

訪問密碼的粉絲將需要在「installPatch」一樣變化功能。

我本來打算用

stream.write(this.settings.password + '\n'); 

我是否有任何其他選項,讓我從MyConnection的類中找回密碼?我希望我只是忽略了明顯的。

回答

0

好的,所以我相信它是在我的面前主演。

變化

stream.write(myConn.conn.config.password + '\n'); 

stream.write(stream._client.config.password + '\n');