Посмотрите Закон Текучих Абстракций - слишком много сахара, и Вы просто используете его, не понимая или зная то, что продолжается, и это делает его все больше трудно, чтобы отладить, если что-то делает , идут не так, как надо. Это не так много, что "синтаксический сахар" является плохой вещью, просто что много программистов полагается на него, действительно не будучи знающим, что они экранируются от, и затем если синтаксический сахар сталкивается с проблемами, они завинчены.
Вы также можете изучить paramiko , еще одну библиотеку SSH для Python.
Вы пробовали еще более простой подход?
>>> from subprocess import Popen, PIPE
>>> stdout, stderr = Popen(['ssh', 'user@remote_computer', 'ps -ef'],
... stdout=PIPE).communicate()
>>> print(stdout)
Конечно, это работает только потому, что у меня ssh-agent
работает с предварительно загруженным закрытым ключом, о котором знает удаленный хост .
Попробуйте отправить
p.sendline("ps -ef\n")
IIRC, отправленный вами текст интерпретируется дословно, поэтому другой компьютер, вероятно, ждет, пока вы завершите команду.