O SSH não deve usar senhas fornecidas via pipe por vários motivos de segurança. Mas existem algumas alternativas:
Veja também link
Sou bastante novo no campo shell scripting e escrevi um script shell no servidor centos para copiar sua chave ssh para algumas máquinas host ubuntu. Meu scipt se parece com isso.
#!/bin/bash
path="/root/keygen/source.txt";
for p in 'cat "$path"';
do echo "$p"
echo "mypassword" | ssh-copy-id root@"$p" --stdin > /dev/null
echo "key copied"
done
O arquivo /root/keygen/source.txt
contém os endereços IP das máquinas ubuntu. A senha de root da máquina host ubuntu é "mypassword" e o ip local é 192.168.0.10
Mas quando eu executo este script, ele fica preso e pede a senha de root 192.168.0.10 que eu já forneci no scipt. Existe algum problema no script? Por favor, avise-me para corrigir este programa para que ele ocupe todos os endereços Ip na lista que eu forneci e copie sua chave ssh sem pedir senha. E, por favor, note que todas as máquinas têm a mesma senha de root.
Obrigado antecipadamente.