Assumindo que parallel-ssh
e pssh
são equivalentes, então sim, o que você está tentando fazer deve funcionar muito bem com a passagem da senha usando a opção -A
.
Exemplo
Aqui está um exemplo em que me conecto a dois sistemas diferentes, host1
e host2
. Eu uso a opção -l
para pssh
para fornecer um usuário padrão de root
. No entanto, em host2
I, substituo isso na opção -H
, especificando o nome do host como user1@host2
.
$ pssh -A -i -H "host1 user1@host2" -l root 'echo "hi"'
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
[1] 21:38:00 [SUCCESS] user1@host2
hi
Stderr:
This is a private site. Unauthorized connections are prohibited.
All activity may be logged. Disconnect immediately if you object to
this policy or are not an authorized user.
X11 forwarding request failed on channel 1
Killed by signal 1.
[2] 21:38:00 [SUCCESS] host1
hi
Stderr:
This is a private site. Unauthorized connections are prohibited.
All activity may be logged. Disconnect immediately if you object to
this policy or are not an authorized user.
ControlSocket /home/user1/.ssh/[email protected]:22 already exists, disabling multiplexing
X11 forwarding request failed on channel 0
Killed by signal 1.
Quando o trabalho acima funcionar, você notará a saída do comando que estou executando, echo "hi"
.
Seu problema
O problema que você está enfrentando com uma senha no seu par de chaves SSH é devido a um erro. Este é o bug intitulado: Problema 80: Não está passando a frase secreta? . O quarto comentário dessa edição mostra um patch:
trecho
#4 [email protected]
I changed the line to
if not ( prompt.strip().lower().endswith('password:') or 'enter passphrase for key' in prompt.strip().lower()):
and it seems to work