使用的Plink(腻子)通过Python的使用SSH

问题描述 投票:8回答:3

我想写一个python脚本,将SSH连接到服务器并执行的命令。我在Windows上使用Python 2.6,并且已经安装了砰砰和paegent(针对SSH密钥),并将它们全部加到我的道路。

如果我去的命令提示符下输入:

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

我看到在我的Mac(服务器)所期望的行为 - 一个VNC查看器中打开。

但是,如果我已经尝试了两种方法通过编程的Python来做到这一点,无论是工作:

方法1():

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窗口。不过,我相信他们都成功地连接到远程主机。

我究竟做错了什么?

python ssh putty plink subprocess
3个回答
7
投票

在第二种方法中,使用

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

0
投票

我用fabric用于通过SSH远程PC上运行命令的自动化。


-1
投票

我会尝试:

Popen("plink user@host -i key.ppk", shell=True)
Popen("open vnc://www.example.com", shell=True)
© www.soinside.com 2019 - 2024. All rights reserved.