Bashを介してGPGキーに自動的に署名して信頼します。

Bashを介してGPGキーに自動的に署名して信頼します。

bashを介したgpgと自動キー署名に関する質問があります。署名を開始するスクリプトがあります。

gpg --recv $schluessel1
gpg --edit $schluessel1

次のようにしようとすると:

lsign

これは無視され、以下の出力のみが表示されます。

gpg>

上記のヒントに従って手動で作成してlsign後で作成できますy

これらの2つのステップを自動化することは可能ですか?

答え1

同様のことをするスクリプトをドイツ語で書いていますが、問題ではないようです。http://www.openpgp-schulungen.de/scripte/key Generation/key-Generation.sh):

echo addkey$'\n'8$'\n'e$'\n'q$'\n'${length}$'\n'"$expire"$'\n'save$'\n' |
  LC_ALL= LANGUAGE=en gpg --batch --display-charset utf-8 --utf8-strings \
  --passphrase "$PASSPHRASE" --command-fd 0 --edit-key $x_short_id

これはGnuPG 1.4.xと2.0.xで動作します。

1.4.xでは、lsign同様の方法でこれを簡単に実行できます。 2.0.xの場合も注意が必要ですgpg-agent。可能ですが、まだ実装していません。基本的なアイデアは次のとおりです。

  1. gpg-agent交換した構成から始めますpinentry
  2. pinentryFIFOから必要なデータを読み取る代替方法を使用してください(スクリプトはによって開始されるためgpg-agent)。
  3. バックグラウンドプロセスを開始し、必要なデータをFIFOに書き込みます。

コード例:

echo "OK - what's up?"
while read cmd rest; do
        # echo "cmd=$cmd rest=$rest" >&2
        : ${PINENTRY_USER_DATA}
        case "$cmd" in
                \#*)
                        :
                ;;
                GETINFO)
                        if [ "pid" = "$rest" ]; then
                                echo "D $$"
                        fi
                        echo "OK"
                ;;
                GETPIN)
                        read PASSPHRASE <"$input_fifo_path"
                        echo "D ${PASSPHRASE}"
                        echo "OK"
                ;;
                BYE)
                        echo "OK"
                        exit 0
                ;;
                *)
                        echo "OK"
                ;;
        esac
done

答え2

私は正解を見つけました。

gpg --recv $key                     # receive Key from Keyserver
xdotool key y; xdotool key Return   # press y and then return
gpg --edit $key lsign save          # Sign and save the key

まず、xdotoolをインストールするまでsudo apt-get install xdotool自動的に実行できます。まだ保存しようとしませんでしたが、うまくいくことを願っています。

関連情報