как передать пароль из nodejs в bash скрипт?

нужно через nodejs залогинить ключи ssh

я вызываю скрипт bash

testObject.js

let exec_command = await `bash TEST.sh ${HOST}`

const { stdout, stderr } = await exec(exec_command);

return stdout.trim()

дальше есть 2 преграды

  1. вопрос (can't be established. ECDSA key fingerprint is) на который я должен ответить yes

  2. передать пароль

такое в случае с ssh-copy-id не сработало

sshpass -p your_password ssh-copy-id  root@${DO_IP}

по этому я пишу echo yes но это тоже не сработало

TEST.sh

IP=$(nslookup  ${1} | awk -F': ' 'NR==6 { print $2 } ')
echo $(echo  yes | ssh-copy-id  root@${IP})

какие есть варианты это реализовать ?

если это можно реализовать на чистом nodejs то тоже подходит


Ответы (1 шт):

Автор решения: Sergei Kirjanov

Я делал взаимодействие с интерактивной консольной программой через Expect. Что-то типа такого: https://pyneng.readthedocs.io/ru/latest/book/19_ssh_telnet/pexpect.html Возможно и для ноды есть такое.

Другой вариант: поднять веб сервис, по ssh не ходить. Или поднять веб сервис там, где можно положить ключ без пароля.

→ Ссылка