Найдите программу, которая уже делает это, например, lftp.
Или проложите эту однострочную строку Perl, чтобы получить представление о том, что вы должны делать:
perl -MNet::OpenSSH -e 'Net::OpenSSH->new(localhost, password => foo)'
В основном этосводится к выделению псевдо-пары tty в главном процессе, разветвлению и установке подчиненной части pty дочернего элемента в качестве текущего tty перед выполнением ssh.