if you can use public/private pairs of keys instead of user/login for authentication, try
Net::SFTP::Foreign. It uses the native ssh binary to stablish the connection to the server instead of Net::SSH::Perl and so it is more robust and doesn't require a bunch of additional modules to work.