1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Prevent ssh-keygen prompting for passphrase when blank

This commit is contained in:
Nick O'Leary 2018-01-19 13:12:22 +00:00
parent 7e2b2a9a02
commit eac98a6d4d
No known key found for this signature in database
GPG Key ID: 4F2157149161A6C9

View File

@ -22,49 +22,32 @@ var log;
function runSshKeygenCommand(args,cwd,env) { function runSshKeygenCommand(args,cwd,env) {
return new Promise(function(resolve, reject) { return new Promise(function(resolve, reject) {
console.log("Spawning command",args); var child = child_process.spawn(sshkeygenCommand, args, {cwd: cwd, detached: true, env: env});
try { var stdout = "";
var child = child_process.spawn(sshkeygenCommand, args, {cwd: cwd, detached: true, env: env}); var stderr = "";
var stdout = "";
var stderr = "";
var watchdog = setTimeout(function() { child.stdout.on('data', function(data) {
console.log("TIMEOUT"); stdout += data;
console.log("stdout",stdout); });
console.log("stderr",stderr); child.stderr.on('data', function(data) {
child.kill(); stderr += data;
},6000); });
child.on('close', function(code, signal) {
child.stdout.on('data', function(data) { if (code !== 0) {
stdout += data; var err = new Error(stderr);
}); err.stdout = stdout;
child.stderr.on('data', function(data) { err.stderr = stderr;
stderr += data; if (/passphrase is too short/.test(stderr)) {
}); err.code = "key_passphrase_too_short";
child.on('close', function(code, signal) { } else if(/Key must at least be 1024 bits/.test(stderr)) {
clearTimeout(watchdog); err.code = "key_length_too_short";
console.log("sshKeyGen closed",code);
console.log("sshKeyGen",stdout);
console.log("sshKeyGen",stderr);
if (code !== 0) {
var err = new Error(stderr);
err.stdout = stdout;
err.stderr = stderr;
if (/passphrase is too short/.test(stderr)) {
err.code = "key_passphrase_too_short";
} else if(/Key must at least be 1024 bits/.test(stderr)) {
err.code = "key_length_too_short";
}
reject(err);
} }
else { reject(err);
resolve(stdout); }
} else {
}); resolve(stdout);
} catch(err) { }
console.log("Threw error",err); });
reject(err);
}
}); });
} }
@ -83,9 +66,8 @@ function generateKey(options) {
if (options.comment) { if (options.comment) {
args.push('-C', options.comment); args.push('-C', options.comment);
} }
if (options.password) { args.push('-N', options.password||'');
args.push('-N', options.password);
}
return runSshKeygenCommand(args,__dirname); return runSshKeygenCommand(args,__dirname);
} }