2012-05-11 5 views
1

SCPコマンドを使用して、ローカルマシンからリモートサーバーにファイルをコピーします。私はCygwinでファイルをコピーすることができました。今私はこれをQtで達成したいと思います。 'SCP'コマンドを呼び出すにはどうしたらいいですか? QProcessを利用すると、パスワードプロンプトについてどのように知ることができますか?QtからSCPコマンドを呼び出す方法

+0

パスワードを 'QByteArray'として' QProcess'の標準入力に 'write()'すると動作しませんか? – dschulz

+0

'QProcess'で' pg_dump'コマンド(PostgreSQLバックアップユーティリティ)を起動し、パスワードを標準入力に 'QByteArray'として書き込もうとしました。 'write()'をいつ行うかを知るために、私はプロセスの標準エラー(readyReadStandardError()SIGNAL)を監視しています。 'startsWith()' '" Password: "'という文字列があれば、パスワードを 'write()'します。それはうまく動作します。 – dschulz

+0

今すぐ 'scp'を試してみようとしています。 – dschulz

答えて

0

私が知っているように、あなたはあなたのために、SCPを呼び出しbashのスクリプトを書いてみても、(コマンドを呼び出そうどちらの方法、パスワードの入力を求めるSCPと同じ問題にヒットするファラとして、インスタンス)私の知る 解決策が含まれています:

  • 公開鍵/秘密鍵を作成し、パスワードが表示される必要がないように、それらを配布します。トピックに関する興味深い論文がhere
  • は、公開鍵を使用するようにユーザーに要求するexpectスクリプトを作成し、QProcess
0

でそれを呼び出しであり、あなたの問題が解決されていますhttps://hkn.eecs.berkeley.edu/~dhsu/ssh_public_key_howto.html

SCP、SSH、SFTP、意図的にパスワードをユーザから直接取得することを困難にする。具体的には、expectのようなものは動作しません。もしそうしたとしても、彼らは安全ではないでしょう。

関連する問題