3
var exec = require('child_process').exec;

exec('ssh my_ip',function(err,stdout,stderr){
    console.log(err,stdout,stderr);
});

これはフリーズするだけです-ssh my_ipパスワードを要求したり、インタラクティブになったりするためだと思います。正しく行う方法は?

4

5 に答える 5

2

このページの他のライブラリには、低レベルの API があります。

そのため、軽量のラッパーを作成しました。node-sshもMIT ライセンスの下でGitHubから入手できます。

これを使用する方法の例を次に示します。

var driver, ssh;

driver = require('node-ssh');

ssh = new driver();

ssh.connect({
  host: 'localhost',
  username: 'steel',
  privateKey: '/home/steel/.ssh/id_rsa'
})
.then(function() {
  // Source, Target
  ssh.putFile('/home/steel/.ssh/id_rsa', '/home/steel/.ssh/id_rsa_bkp').then(function() {
    console.log("File Uploaded to the Remote Server");
  }, function(error) {
    console.log("Error here");
    console.log(error);
  });
  // Command
  ssh.exec('hh_client', ['--check'], { cwd: '/var/www/html' }).then(function(result) {
    console.log('STDOUT: ' + result.stdout);
    console.log('STDERR: ' + result.stderr);
  });
});
于 2015-01-18T22:01:44.590 に答える