이 작업을 수행하는 내장 된 방법은 없지만 아무것도 수정하지 않고 암호 만 확인할 수있는 테스트를 만드는 것은 간단합니다.
지정하지 않았으므로 v2 미만의 GnuPG 버전을 사용하고 있으며 명령 줄 인터프리터를 위해 Bash가있는 Linux에 있다고 가정합니다.
여기에서 명령을 내리고 아래에서 각 부분의 기능을 설명하겠습니다. (참고 : 다음은 GnuPG 시리즈 버전 1 용, GnuPG 시리즈 v2 용은 아래 참조)
echo "1234" | gpg --no-use-agent -o /dev/null --local-user <KEYID> -as - && echo "The correct passphrase was entered for this key"
그게 먼저하는 일은 GnuPG에 서명 할 텍스트를 파이프하는 echo "1234" |
것입니다. 우리는 실제로 아무것도 서명하고 싶지 않기 때문에 테스트 일 뿐이므로 쓸모없는 텍스트에 서명 할 것입니다.
다음으로, 우리는 gpg에게 --no-use-agent
; 이는 나중에 중요합니다. 키 에이전트에 따라 성공시 "0"을 반환하지 않을 수 있으며 이것이 우리가 원하는 전부입니다. 암호의 성공 여부를 확인하십시오.
다음으로 gpg에 서명 된 데이터를 /dev/null
파일에 합니다. 즉 파일을 버리고 결과를 터미널에 쓰지 않습니다. 참고 : Linux / Unix의 일부 변형을 사용하지 않는 경우이 파일이 존재하지 않을 수 있습니다. Windows에서는 -o /dev/null
부분을 생략하여 서명 된 데이터를 화면에 쓰도록 허용해야 할 수도 있습니다 .
다음으로 테스트를 수행 할 키를 지정합니다. --local-user 012345
. 최대의 특이성을 위해 KeyID를 사용하거나 사용자 이름을 사용하여 가장 적합한 제품군을 사용할 수 있습니다.
다음으로 -as
ascii 출력 모드를 활성화하고 서명을위한 컨텍스트 모드를 설정하는 을 지정 합니다. 그만큼-
이후 데이터 만이 표준에서, 우리가 준 명령의 첫 번째 부분입니다있는 서명을 얻기 위해 GnuPG를 알려줍니다 echo "1234" |
.
그리고 마지막으로 && echo "A message that indicates success"
"&&"는 이전 명령이 성공하면이 메시지를 인쇄한다는 의미입니다. 위의 명령이 성공하면 출력이 전혀 표시되지 않기 때문에 명확성을 위해 추가되었습니다.
무슨 일이 일어나고 있는지 이해하고 원하는 테스트를 수행하는 방법을 이해할 수 있기를 바랍니다. 명확하지 않은 부분이 있거나 이해가되지 않는 부분이 있으면 기꺼이 설명하겠습니다. 행운을 빕니다!
[편집]-GnuPG v2를 사용하는 경우 위의 명령을 다음과 같이 약간 수정해야합니다.
echo "1234" | gpg2 --batch --passphrase-fd 1 -o /dev/null --local-user <KEYID> -as - && echo "The correct passphrase was entered for this key"
그 이유는 GnuPG v2에서는 에이전트를 통해 암호를 검색 할 것으로 예상하므로 에이전트 사용을 비활성화 할 수없고 --no-use-agent
원하는 효과를 얻을 수 없습니다 . 대신 GnuPG v2에 "배치"프로세스를 실행하고 싶다고 알려주고 옵션을 사용하여 STDIN (표준 입력)에서 암호를 검색해야합니다 --passphrase-fd 1
.
gpg --local-user <KEYID> -as
. 이렇게하면 상담원이 암호를 요청하고 올바른지 알려줍니다 (그런 다음 아무 작업도 수행하지 않음).