gpg로 파일을 일괄 복호화할 때 비밀번호를 한 번만 입력하는 방법

gpg로 파일을 일괄 복호화할 때 비밀번호를 한 번만 입력하는 방법

일부 gpg 파일의 암호를 해독하여 파일로 출력하고 싶습니다. 하지만 gpg는 매번 비밀번호를 묻습니다.

for i in *.gpg; do echo $i>>~/t; gpg -d --batch $i >>~/t; done

--multifile 및 --batch를 테스트했는데 원하는 대로 작동하지 않았습니다.

답변1

몇 가지 방법들:

# gather the password into $P
stty -echo; read -r P; stty echo; 
for i in *.gpg; do printf '%s\n' "$i" >> ~/t; printf '%s' | gpg -d --batch --passphrase-fd 0 "$i" >> ~/t; done

# gather the password into $P
stty -echo; read -r P; stty echo; 
for i in *.gpg; do printf '%s\n' "$i" >> ~/t; gpg -d --batch --passphrase "$P" "$i" >> ~/t; done

d=$(mktemp -d)
# gather the password into a file named `p`
stty -echo; cat > "$d/p"; stty echo
for i in *.gpg; do printf '%s\n' "$i" >> ~/t; gpg -d --batch --passphrase-file "$d/p" 0 "$i" >> ~/t; done
rm -rf "$d"

관련 정보