gpg
"test"라는 암호를 사용하여 "file"이라는 파일을 실행하는 스크립트를 작성하고 싶습니다 .
일반적으로 를 사용할 때 gpg
보통 실행 gpg -c file
하면 암호를 묻는 메시지가 나타납니다. 하지만 이 스크립트가 모든 작업을 자체적으로 수행하기를 원하므로 명령의 일부로 암호를 제공하고 싶습니다.
이제: 을 사용하려고 하면 gpg -c file --passphrase test
다음이 출력됩니다.
사용법: gpg [옵션] --symmetric [파일 이름]
어떤 솔기가 내가 사용하기를 원하는지 gpg --passphrase test --symmetric file
. 하지만 그렇게 하면 사용할 암호를 묻는 대화 상자가 나타납니다. 그것은 내가 원하는 것이 아닙니다.
인수를 올바르게 설정하려면 어떻게 해야 합니까?
답변1
GnuPG에서는 옵션이 명령 앞에 --passphrase
와야 하므로 옵션이 --symmetric
.
을 사용하더라도 어쨌든 나타나는 핀 입력 창과 관련하여 --passphrase
아마도 --batch
와 함께 사용해야 하는 GnuPG 2를 이미 사용하고 있을 것입니다 --passphrase
. 매뉴얼 페이지에서:
--passphrase string
Use string as the passphrase. This can only be used if only one
passphrase is supplied. Obviously, this is of very questionable
security on a multi-user system. Don't use this option if you
can avoid it. Note that this passphrase is only used if the
option --batch has also been given. This is different from
GnuPG version 1.x.
다중 사용자 시스템에서는 다른 모든 사용자가 명령줄을 읽을 수 있으므로 GnuPG가 실행되는 동안 암호도 읽을 수 있습니다. --passphrase-*
파일이나 파이프에서 읽는 대신 다른 옵션 중 하나를 사용하는 것이 좋습니다 .
답변2
를 사용하면 & 와 --pinentry-mode loopback
함께 작동하며 , 예를 들어 파일 이름이 충돌하는 경우 새 정보를 입력할 수 있습니다.--passphrase
--passphrase-[file/fd]
File 'xyz.gpg' exists. Overwrite? (y/N)n
Enter new filename: xyz2.gpg
그와 는 달리 --batch
금방 실패할 거라고....failed: File exists
원래 verbose 옵션( )을 먼저 추가했다면 -v
다음과 같은 내용이 표시되어야 합니다.
$ gpg -v -c file --pinentry-mode loopback --passphrase-file=passfile
gpg: Note: '--pinentry-mode' is not considered an option
gpg: Note: '--passphrase-file=passfile' is not considered an option
usage: gpg [options] --symmetric [filename]
-c
( )를 먼저 넣는 것이 마음에 들지 않는다는 것을 꽤 분명하게 나타냅니다 --symmetric
.
버그가 --passphrase
동반되지 않는 한 옵션을 무시하는 gpg2의 동작을 고려합니다 .--batch
답변3
v2를 보고하는 경우 옵션 gpg --version
을 추가해야 합니다 --batch
.
구문 출력에 따르면 아마도 v1을 사용하고 있을 것입니다. 이 경우 원하는 경우는 다음과 같습니다.
gpg --passphrase PASS -c --no-use-agent FILE
옵션의 순서는 중요하지 않습니다. 그러나 모든 파일은 마지막 인수여야 합니다.