I'm using the below code to reset a password on a linux box using nodejs and ssh2 module:
// FILE * ./workflow/ssh.js
var Client = require('ssh2').Client;
var conn = new Client();
// var opts = require('optimist')
// .options({
// user: {
// demand: true,
// alias: 'u'
// },
// }).boolean('allow_discovery').argv;
// Definition of reset password;
var resetPassword = function(user, host, loginUser, loginPassword){
var command = 'echo -e "linuxpassword\nlinuxpassword" | passwd '+ user;
conn.on('ready', function() {
console.log('Client :: ready');
conn.exec(command, function(err, stream) {
if (err) throw err;
stream.on('close', function(code, signal) {
console.log('Stream :: close :: code: ' + code + ', signal: ' + signal);
conn.end();
return(code);
}).on('data', function(data) {
console.log('STDOUT: ' + data);
}).stderr.on('data', function(data) {
console.log('STDLOG: ' + data);
});
});
}).connect({
host: host,
port: 22,
username: loginUser,
password: loginPassword
});
};
exports.resetPassword = resetPassword;
I'm calling the resetPassword password function from an other module , say test.js as below.
var ssh = require('./workflow/ssh.js');
result = ssh.resetPassword('test122', '192.168.0.101', 'root' , 'password');
console.log(result)
But the console.log says "undefined". Tried using the process.nextTick, but no luck. Please help.