スクリプト内でsshを使う

import subprocess

sp = subprocess.Popen("ssh -Y username@example.com", shell=True, stdin=PIPE)
sp.stdin.write("xterm")

とするとsshがパスワードを聞こうとあるはずの端末を使おうとする。普段なら何の問題もないのだが今回はwxWidgetsを使ったGUIなので端末にフォーカスが移るのは都合が悪い。よってpexpectを導入して次のようにした。

import pexpect

password = hogehoge.GetValue()
sp = pexpect.spawn("ssh -Y username@example.com")
sp.expect("[Pp]assword:")
sp.sendline(password)
sp.expect("[#$%]")
sp.sendline("xterm")

初めてのアクセスのときはホストキーの認証があるのでこれではダメだが、それがないならこれでいける。