Você pode usar o TCL Expect ou Perl :: Expect . Depois de tentar os dois, prefiro o mais tarde, porque estou mais familiarizado com o Perl.
Este é um recorte de um script que eu uso para o ssh em vários servidores de teste (não recomendado para servidores de produção sensíveis):
if( defined $password ) {
$exp->expect(
$timeout,
[ qr/no\)\?\s+$/i => sub {
my $self = shift;
$self->send("yes\n");
exp_continue;
}
],
[ qr/password:\s+$/i => sub {
my $self = shift;
$self->send("$password\n");
exp_continue;
}
],
'-re',
qr/~/, #' wait for shell prompt, then exit expect
);
}
Você pode ver a fonte completa aqui: link