1

私はこの問題を何日も抱えていて、何が悪いのか理解できません。

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との通信を改善するために使用できる別のモジュールはありますか?

4

2 に答える 2

1

かなり前に、私は winpexpect を見ました。どちらも実行できませんでした。ただハングしました。サポートされていないセクションと関係があり、私の記憶が正しければ不完全な移植です。

sshに必要だったので、結局paramikoに置き換えました。コンパイル済みのインストーラーを使用しない限り、Windows でセットアップするのが面倒な pycrypto が必要です。鍵の生成については、ドキュメントのこのセクションを参照してください。キーのロードと保存があります。また、欠落しているホストキー機能にも注意してください。

すぐに起動して実行できるように、概要を次に示します。なぜ彼がAutoAddPolicy(). 長所/短所と詳細については、ドキュメントを確認してください。

于 2012-05-29T13:12:17.827 に答える
0

これは fork プロジェクトwinpexpectです: このバージョンは多くのバグを修正しました。お試しいただけます。

于 2012-09-07T08:53:11.547 に答える