私はこの問題を何日も抱えていて、何が悪いのか理解できません。
OSXで実行されているpexpectを使用した単純なPythonスクリプトがあります。これは、ssh-keygenを起動し、returnキーを押すことを自動化して、キーペアを生成します。これは正常に機能します。Windowsでも同じことをしたいです。Windowsでsshとssh-keygenを取得するために、OpenSSH for Windowsをインストールしました。これにより、CYGWINサポートファイルの一部を使用して、通常のWindowsプログラムとしてcmdプロンプトからsshを実行できます。同じスクリプトをWindowsに移植し、pexpectをwinpexpectに変更し、対応するwinspawnを使用してサブプロセスを開始しましたが、最初のプロンプトで停止します。
def generateKeys(self):
print "GeneratingKeys..."
gen = winpexpect.winspawn("ssh-keygen -t rsa")
print gen.expect(":") #This is where it asks for a place to save the keys. retuns 0 if found
print "before: " + gen.before
print "after: " + gen.after
print gen.sendline()
#Next it should expect a prompt for a passphrase but it never reaches it
print gen.expect(":")
print "before: " + gen.before
print "after: " + gen.after
print gen.sendline()
私が得る出力はこれです:
GeneratingKeys...
0
before: Enter file in which to save the key (/home/user/.ssh/id_rsa)
after: :
2
before: Enter file in which to save the key (/home/user/.ssh/id_rsa)
after: :
そして、それがデジタルダストバニーを集めるすべての永遠のために座っているのはここです。
予想されるコロンの後に「:」が表示される理由もわかりません。
OpenSSH for Windowsとの通信を改善するために使用できる別のモジュールはありますか?