-3

Telnet機能を使用してマシンに接続し、Puttyを使用してファイルをプッシュし、現在まで正常に機能していました。しかし、突然、subprocess.Popen()を使用してファイルをマシンにプッシュしようとしているときに、エラーがスローされ始めました。エラーは次のとおりです。


結果:警告-潜在的なセキュリティ違反!

サーバーのホストキーが、PuTTYがレジストリにキャッシュしたものと一致しません。これは、サーバー管理者がホストキーを変更したか、サーバーになりすました別のコンピューターに実際に接続したことを意味します。

キャッシュされたキーを更新しますか?(y / n、Returnは接続をキャンセルします)接続は中止されました。接続が切れました


スクリプトに1つのステップを追加したいのですが、コンソールにこのようなものがある場合は、コンソールに「はい/y」と入力します。私はそれを乗り越えるためにこのことを試みました:

if'結果:警告-潜在的なセキュリティ違反!' sys.argv内:

                raw_input("y\n")
                time.sleep(1)

しかし、それは機能していません..これに関する助けは!!!

4

1 に答える 1

2

質問の最初の部分については、レジストリキーを調べて、HKEY_CURRENT_USER\SoftWare\SimonTatham\PuTTY\SshHostKeysホストキーが変更されたホストコンピューターを削除する必要があります(https://superuser.com/questions/197489/where-does-putty-store-known-hostsを参照)。 -information-on-windows)。

2番目の部分では、raw_input()は、サブプロセスに値を送信するためではなく、ユーザーからの入力を取得するために使用されます。よくわかりませんが、PuTTYのpscpはstdinからy / n値を取得していると思います。そのため、万が一の場合に備えて、サブプロセスのPopen()を使用して常に「y」を渡すことができます(Python-How do I文字列をsubprocess.Popenに渡します(stdin引数を使用)?)またはpscpに「-batch」引数を渡してみることができます。これはプロンプトを妨げないように聞こえます(http://the.earth.li/を参照)。 〜sgtatham / putty / 0.62 / htmldoc / Chapter5.html#pscp-usage)。

于 2013-02-27T20:30:14.090 に答える