2017-11-03 23 views
0

ノードSSH2パッケージを使用しようとしています。ノードSSH2 sudoパスワード

Client :: ready 
STDOUT: [sudo] password for venafi: 

どのようにパスワードプロンプトにパスワードを書き込むことができます。私は次のようにパスワードの入力を求められたコードを実行するとこれは私のコード

var Client = require('ssh2').Client; 
 

 
var password = 'xxxxxx' 
 
var conn = new Client(); 
 
conn.on('ready', function() { 
 
    console.log('Client :: ready'); 
 
    conn.exec('sudo ls -la', { pty: true }, function(err, stream) { 
 
     if (err) throw err; 
 
     stream.on('close', function(code, signal) { 
 
      console.log('Stream :: close :: code: ' + code + ', signal: ' + signal); 
 
      conn.end(); 
 
     }).on('data', function(data) { 
 
      if (data.indexOf(':') >= data.length - 2) { 
 
      stream.write(password + '\n'); 
 
      } 
 
      else { 
 
       console.log('STDOUT: ' + data); 
 
      } 
 
     }).stderr.on('data', function(data) { 
 
      console.log('STDERR: ' + data); 
 
     }); 
 
    }); 
 
}).connect({ 
 
    host: 'xxx.xxx.xxx.xxx', 
 
    port: 22, 
 
    username: 'user', 
 
    password: 'xxxxx', 
 
}); 
 

 
// example output: 
 
// Client :: ready 
 
// STDOUT: 17:41:15 up 22 days, 18:09, 1 user, load average: 0.00, 0.01, 0.05 
 
// 
 
// Stream :: exit :: code: 0, signal: undefined 
 
// Stream :: close

のですか?

+0

OKので、私は 'stream.write(パスワード+ '\ nは')移動;' '.on( 'データ'、機能(データ)'関数と今送りにsudoのパスワードが何らかの理由でそれが複数回にsudoのパスワードを書き出す例えば STDOUT:。。PASSW0RD STDOUT:PASSW0RD STDOUT:PASSW0RD – user1513388

+0

はOKので、私はそれを働いたと、これをヒット他の誰を助けるために私の例を更新しました問題。 – user1513388

答えて

0

私はそれを試してみました。この問題に当たる誰かを助けるために私の例を更新しました。これは私が必要としたコードです。

if (data.indexOf(':') >= data.length - 2) { 
 
      stream.write(password + '\n'); 
 
      } 
 
      else { 
 
       console.log('STDOUT: ' + data); 
 
      }

関連する問題