Bash 스크립트에서 pinentry를 호출하는 방법

Bash 스크립트에서 pinentry를 호출하는 방법

pinentry내 스크립트를 호출하는 동일한 터미널에서 단일 입력을 요청한 다음 해당 항목을 다른 명령으로 파이프하도록 bash 스크립트에서 호출하려면 어떻게 해야 stdout합니까? 이 질문을 위해 echo.

대답은 이것이기를 바랍니다

pinentry-tty <this is what I dont know> | echo

내 질문은 다음에 관한 것이 아닙니다.

  • gpg
  • ssh
  • git
  • 명령줄 이외의 다른 것을 사용하는 방법pinentry
  • 다음을 사용하여 환경 변수를 설정하는 방법read -s

다음과 같이 가정해보자:

  • 두 번째 Google 페이지를 통과하게 만들었어요
  • 나는 사용했다pinentry info

답변이 내 시스템의 현재 버전에서 작동했다면 좋겠지만 테스트하지 않기를 바랍니다.

pinentry-tty (pinentry) 1.2.0
Copyright (C) 2016 g10 Code GmbH
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

내 질문의 어조가 마음에 들지 않지만 가능한 한 명확하게 설명하고 싶습니다.

답변1

Ichthyo의 의견이 공유한 답변이 도움이 될 것입니다. GUI를 사용하지 않고 터미널에 PIN을 입력하려면 다음을 수행하십시오.

sudo update-alternatives --config pinentry

을 선택합니다 pinentry-curses.

글쎄, 귀하의 스크립트는 SO 답변과 동일합니다.

tty=$(tty)

pwd=$(echo "GETPIN" | pinentry -T $tty | grep D)

pwd=${password#D }

더 많은 명령을 추가할 수도 있습니다(찾음여기) 구분 기호 \n:

pwd=$(echo "setdesc my program\nsetprompt please enter password:\nGETPIN\n" | pinentry -T $tty | grep D)

관련 정보