スクリプト内で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")
初めてのアクセスのときはホストキーの認証があるのでこれではダメだが、それがないならこれでいける。