2016-11-16 4 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'); 
     }); 
    });  
} 

В то время как это работает, я не поклонник доступа пароля с

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

, так как изменение к имени «myConn» в app.js бы потребовался такой же изменение в «installPatch» функция.

Я намеревался использовать

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

У меня есть какие-либо другие варианты, которые позволят мне получить пароль из класса MyConnection? Надеюсь, я просто упускаю из виду очевидное.

ответ

0

Хорошо, поэтому я считаю, что это играло меня в лицо.

Изменить

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

в

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

 Смежные вопросы

  • Нет связанных вопросов^_^