Use an askpass wrapper

This commit is contained in:
Matthias Pigulla 2021-02-28 15:52:09 +00:00
parent 3702096734
commit 1676d1f2a9
2 changed files with 6 additions and 2 deletions

4
dist/index.js vendored
View file

@ -179,6 +179,8 @@ try {
console.log(`Write file ${keyFile}`); console.log(`Write file ${keyFile}`);
fs.writeFileSync(keyFile, key.replace("\r\n", "\n").trim() + "\n", { mode: '600' }); fs.writeFileSync(keyFile, key.replace("\r\n", "\n").trim() + "\n", { mode: '600' });
fs.writeFileSync(`${homeSsh}/askpass`, `echo ${token}`, { mode: '700' });
// Set private key passphrase // Set private key passphrase
let output = ''; let output = '';
try { try {
@ -193,7 +195,7 @@ try {
// Load key into agent // Load key into agent
console.log('Load key'); console.log('Load key');
//let sshAdd = child_process.execSync(`echo "${token}" | ssh-add "${keyFile}"`, { stdio: 'inherit' }); //let sshAdd = child_process.execSync(`echo "${token}" | ssh-add "${keyFile}"`, { stdio: 'inherit' });
let sshAdd = child_process.execFileSync('ssh-add', [keyFile], { stdio: 'inherit' }); let sshAdd = child_process.execFileSync('ssh-add', [keyFile], { stdio: 'inherit', env: { 'SSH_ASKPASS': `${homeSsh}/askpass` } });
// input: token + "\n", stdio: ['pipe', 'inherit', 'inherit'] }); // input: token + "\n", stdio: ['pipe', 'inherit', 'inherit'] });
//sshAdd.stdin.write(token + "\n"); //sshAdd.stdin.write(token + "\n");
//sshAdd.stdin.end(); //sshAdd.stdin.end();

View file

@ -62,6 +62,8 @@ try {
console.log(`Write file ${keyFile}`); console.log(`Write file ${keyFile}`);
fs.writeFileSync(keyFile, key.replace("\r\n", "\n").trim() + "\n", { mode: '600' }); fs.writeFileSync(keyFile, key.replace("\r\n", "\n").trim() + "\n", { mode: '600' });
fs.writeFileSync(`${homeSsh}/askpass`, `echo ${token}`, { mode: '700' });
// Set private key passphrase // Set private key passphrase
let output = ''; let output = '';
try { try {
@ -76,7 +78,7 @@ try {
// Load key into agent // Load key into agent
console.log('Load key'); console.log('Load key');
//let sshAdd = child_process.execSync(`echo "${token}" | ssh-add "${keyFile}"`, { stdio: 'inherit' }); //let sshAdd = child_process.execSync(`echo "${token}" | ssh-add "${keyFile}"`, { stdio: 'inherit' });
let sshAdd = child_process.execFileSync('ssh-add', [keyFile], { stdio: 'inherit' }); let sshAdd = child_process.execFileSync('ssh-add', [keyFile], { stdio: 'inherit', env: { 'SSH_ASKPASS': `${homeSsh}/askpass` } });
// input: token + "\n", stdio: ['pipe', 'inherit', 'inherit'] }); // input: token + "\n", stdio: ['pipe', 'inherit', 'inherit'] });
//sshAdd.stdin.write(token + "\n"); //sshAdd.stdin.write(token + "\n");
//sshAdd.stdin.end(); //sshAdd.stdin.end();