Использование os.forkpty () для создания псевдотерминала для ssh на удаленный сервер и связи с ним

Я пытаюсь написать сценарий python, который может использовать ssh на удаленном сервере и может выполнять простые команды, такие как ls, cd, из клиента python . Однако я не могу прочитать вывод псевдотерминала после успешного ssh'ing на сервер. Может ли кто-нибудь помочь мне здесь, чтобы я мог выполнять некоторые команды на сервере.

Вот пример кода:

#!/usr/bin/python2.6
import os,sys,time,thread
pid,fd = os.forkpty()
if pid == 0:
    os.execv('/usr/bin/ssh',['/usr/bin/ssh','user@host',])
    sys.exit(0)
else:
    output = os.read(fd,1024)
    print output
    data = output
    os.write(fd,'password\n')
    time.sleep(1)
    output = os.read(fd,1024)
    print output
    os.write(fd,'ls\n')
    output = os.read(fd,1024)
    print output

Пример вывода:

user@host's password: 

Last login: Wed Aug 24 03:16:57 2011 from 1x.x.x.xxxx

-bash: ulimit: open files: cannot modify limit: Operation not permitted
host: /home/user>ls
5
задан Eoin Murphy 24 August 2011 в 10:42
поделиться