bash를 통한 gpg 및 자동 키 서명에 대한 질문이 있습니다. 서명을 시작하는 스크립트가 있습니다.
gpg --recv $schluessel1
gpg --edit $schluessel1
다음과 같이 시도하면 :
lsign
이는 무시되고 아래 출력만 표시됩니다.
gpg>
위의 팁에 따라 수동으로 작성 lsign
하고 나중에 작성할 수 있습니다 y
.
이 두 단계를 자동화하는 것이 가능합니까?
답변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
. 가능하지만 아직 구현하지 않았습니다. 기본 아이디어는 다음과 같습니다.
gpg-agent
교체된 구성으로 시작합니다pinentry
.pinentry
FIFO에서 필요한 데이터를 읽는 대체 방법을 사용하십시오 (스크립트는 에 의해 시작되므로gpg-agent
).- 백그라운드 프로세스를 시작하고 필요한 데이터를 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
자동으로 실행할 수 있습니다. 아직까지는 저장을 시도하지 않았지만 잘 되기를 바랍니다.