#!/usr/bin/perl use Expect; my $ip = "10.0.0.1"; my $user = "user"; my $passwd = 'user'; my $timeout = 30; my $command_prompt = '[#%\$>]|\:\/\s*$|TERM\ \=\ \([a-z]*\)'; my $passwd_prompt = '([p|P]ass|[p|P]ass[w|W]or[d|t]|[c|C]ontrase.a|Enter passphrase for key )\s*:\s*$'; my $user_prompt = '([l|L]ogin|[u|U]suario|[u|U]ser-?[n|N]ame|[u|U]ser)\s*:\s*$|[n|N]ame\s*(.*:.*):\s*'; my $conn_command = "ssh -l $user -p 22 $ip"; my $ct = Expect->spawn($conn_command) or die "Error $conn_command: $!\n"; $ct -> expect ( $timeout, [ $user_prompt, sub { $ct -> send ( "$user\n" ); exp_continue; } ], [ $passwd_prompt, sub { $ct -> send ( "$passwd\n" ); exp_continue; } ], [ $command_prompt, sub { $ct->interact( \*STDIN, __TESTING__TESTING__ ); } ], ); $ct->close();