2011-11-09 8 views
2

こんにちは、私はかなり新しいスクリプトを期待しています。パスワードの暗号化/復号化にgpgを使用しようとしています。暗号化に問題はありません。解読のために、私はexpectスクリプトを使用してそれを自動化しようとしています。私が使用しようとしています 基本的なコマンドは次のとおりです。暗号化されたパスワードを使用してのgpg -o -d < .gpgファイル>gpg - パスワード解読にexpectスクリプトを使用すると動作しない

私は、このコマンドを実行すると、スタンドアロン私はそれを入力すると、それは、パスフレーズを要求し、それが作成されます出力ファイルに出力されます。出力ファイルにはパスワードが入っています。

expectスクリプトを使用してこのコマンドを実行すると、実行時にパスフレーズが自動的に提供されるため、期待通りに出力ファイルが作成されません。

何か助けていただければ幸いです。エラーは表示されません!出力は次のとおりです。

spawn gpg -o /home/gandhipr/passwdfile -d /home/gandhipr/passfile.gpg 
gpg: CAST5 encrypted data 
Enter passphrase: 

以下はmy expectスクリプトです。

#!/usr/bin/expect 
set timeout 1 
set passdir [lindex $argv 0] 
set passfile [lindex $argv 1] 
set passfilegpg [lindex $argv 2] 
set passphrase [lindex $argv 3] 
spawn gpg -o $passdir$passfile -d $passdir$passfilegpg 
expect "Enter passphrase:" 
send "$passphrase\n" 
exp_internal 1 
exit 0; 
interact 
+0

+1:私はまだ問題はありませんでしたが、この質問はこの厄介な作業を行うための簡単なレシピを提供しているという事実のために既に良いです! '/ proc/$ pid/cmdline'を見るだけでは間違っていることがありますが、パスフレーズは間違っているかもしれませんが、セキュリティ上の悪い習慣であると言わなければなりませんが、私は周りに潜んでいました。それを行う方法。 – Dacav

答えて

2

代わりにsendコマンドで\nの利用\r\rは、ユーザーの打撃が入力模倣キャリッジリターン文字です。

関連する問題