8

サーバーに SSH 接続してコマンドを実行する Python スクリプトを作成しようとしています。私は Windows で Python 2.6 を使用しており、plink と paegent (ssh キー用) をインストールし、それらをすべてパスに追加しました。

コマンドプロンプトに移動して次のように入力すると:

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

望ましい動作が見られます。Mac (サーバー) で VNC ビューアーが開きます。

ただし、Python を使用してプログラムでこれを行う 2 つの方法を試しても、どちらも機能しない場合:

アプローチ 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 ウィンドウを開きません。ただし、どちらもリモート ホストに正常に接続されていると思います。

私は何を間違っていますか?

4

3 に答える 3

7

2番目のアプローチでは、使用

ff.communicate("open vnc://www.example.com\n")
于 2011-11-09T16:35:18.473 に答える
-1

やってみます:

Popen("plink user@host -i key.ppk", shell=True)
Popen("open vnc://www.example.com", shell=True)
于 2011-11-09T16:29:07.640 に答える