Использование Plink (PuTTy) для SSH через Python
Я пытаюсь написать скрипт python, который будет SSH на сервер и выполнить команду. Я использую Python 2.6 в Windows и установил plink и paegent (для ключей ssh) и добавил их все в свой путь.
Если я зайду в командную строку и наберу:
plink username@host -i key.ppk
open vnc://www.example.com/
Я вижу желаемое поведение-- на моем Mac (сервере) открывается VNC viewer.
однако, если я попробовал два подхода, чтобы сделать это программно через Python, и ни один из них работа:
подход 1 (os):
import os
ff=os.popen("plink user@host -i key.ppk",'w')
print >>ff, r"open vnc://www.example.com"
ff.flush()
подход 2 (подпроцесс):
import subprocess
ff=subprocess.Popen("plink user@host -i key.ppk",shell=False,stdin=subprocess.PIPE)
ff.stdin.write(r"open vnc://www.example.com")
ff.stdin.flush()
ни один подход не приводит к ошибке, но ни один не открывает окно VNC. Тем не менее, я считаю, что они оба успешно подключаются к удаленному хосту.
что я делаю не так?
2 ответов
Я бы попробовал:
Popen("plink user@host -i key.ppk", shell=True)
Popen("open vnc://www.example.com", shell=True)