IT TIP

gpg 명령 줄을 사용하여 암호가 올바른지 확인하는 방법

itqueen 2020. 10. 14. 21:30
반응형

gpg 명령 줄을 사용하여 암호가 올바른지 확인하는 방법


로 백업을 자동화하려고 duplicity하지만 결과를 테스트하면

gpg : 공개 키 암호 해독 실패 : 잘못된 암호

사용중인 암호가 실제로 해당 gpg 비밀 키와 연결된 암호인지 확인하고 싶지만 gpg 명령 줄 옵션에서 "아무것도 암호화하거나 암호를 해독하지 마십시오. 확인 만하면됩니다. 올바른 암호를 사용하고 있습니다. "

이것은 내가 Gnu Privacy Guard를 (아직 다시) 오해하고 있음을 시사합니다. (내가 울 때까지 나를 조롱하는 경향이 있습니다.)

gpg에게 ​​암호를 확인하도록 요청하는 것이 합리적입니까? 그렇다면 어떻게?


이 작업을 수행하는 내장 된 방법은 없지만 아무것도 수정하지 않고 암호 만 확인할 수있는 테스트를 만드는 것은 간단합니다.

지정하지 않았으므로 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를 사용하거나 사용자 이름을 사용하여 가장 적합한 제품군을 사용할 수 있습니다.

다음으로 -asascii 출력 모드를 활성화하고 서명을위한 컨텍스트 모드를 설정하는 을 지정 합니다. -이후 데이터 만이 표준에서, 우리가 준 명령의 첫 번째 부분입니다있는 서명을 얻기 위해 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 --export-secret-keys -a <KEYID> > /dev/null && echo OK

참고 URL : https://stackoverflow.com/questions/11381123/how-to-use-gpg-command-line-to-check-passphrase-is-correct

반응형