my $ssh; foreach (1..3) { eval { $ssh = Net::SSH::Expect->new( host => $host, password => $password, user => $user, raw_pty => 1, timeout => 3, binary => $ssh_exec, ); }; last if $ssh; sleep 1; } die "Could not connect to remote host '$host'\n" if not $ssh; my $login_output = $ssh->login; $ssh->exec("stty raw -echo"); my $resp_uname; eval { $resp_uname = $ssh->exec('uname'); }; if ($@) { if ($@ =~ m{SSHConnectionAborted}) { die "Invalid username and/or password for OS user $user on the remote server!"; }else { die "Could not connect to remote host '$host' : $@\n"; } }