--passphrase와 함께 GnuPG를 사용하는 방법은 무엇입니까?

--passphrase와 함께 GnuPG를 사용하는 방법은 무엇입니까?

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

옵션의 순서는 중요하지 않습니다. 그러나 모든 파일은 마지막 인수여야 합니다.

답변4

다음과 같이 사용할 수 있습니다.

gpg --passphrase hello -c --no-symkey-cache --cipher-algo AES256 --batch basic.c

또한 배치 사용은 버그가 아니며 문서에 작성되었습니다.여기:

문서의 스크린샷

관련 정보