通过Python使用Plink(PuTTy)进行SSH连接
我正在尝试写一个Python脚本,通过SSH连接到一个服务器并执行一个命令。我在Windows上使用Python 2.6,并且已经安装了plink和pageant(用于SSH密钥),还把它们添加到了我的系统路径中。
如果我打开命令提示符并输入:
plink username@host -i key.ppk
open vnc://www.example.com/
我能看到预期的效果——我的Mac(服务器)上打开了一个VNC查看器。
但是,我尝试了两种方法通过Python来实现这个功能,但都没有成功:
方法一(os模块):
import os
ff=os.popen("plink user@host -i key.ppk",'w')
print >>ff, r"open vnc://www.example.com"
ff.flush()
方法二(subprocess模块):
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窗口。不过,我相信它们都成功连接到了远程主机。
我到底哪里做错了呢?
3 个回答
-1
我会尝试:
Popen("plink user@host -i key.ppk", shell=True)
Popen("open vnc://www.example.com", shell=True)
0
我使用fabric这个工具来自动化在远程电脑上通过SSH运行命令。
7
在第二种方法中,使用
ff.communicate("open vnc://www.example.com\n")