使用Plink(PuTTy)通过Python进行SSH

2024-06-12 03:07:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个python脚本,该脚本将SSH到服务器并执行一个命令。我在Windows上使用Python 2.6,安装了plink和pagent(用于ssh密钥),并将它们全部添加到我的路径中。

如果转到命令提示符并键入:

plink username@host -i key.ppk
open vnc://www.example.com/

我看到了所需的行为——一个VNC查看器在我的Mac(服务器)上打开。

但是,如果我尝试了两种方法来通过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窗口。不过,我相信他们都成功地连接到了远程主机。

我做错什么了?


Tags: 方法key脚本comhostosexamplewww
3条回答

在第二种方法中,使用

ff.communicate("open vnc://www.example.com\n")

我使用fabric在远程PC上通过SSH自动运行命令

我会尝试:

Popen("plink user@host -i key.ppk", shell=True)
Popen("open vnc://www.example.com", shell=True)

相关问题 更多 >