모든 gpg 하위 키 비밀번호를 한 번에 캐시 하시겠습니까? 여러 gpg 비밀번호 입력이 필요하지 않습니까?


10

gpg 비밀번호를 한 번만 입력하고 모든 하위 키 (서명, 암호 해독, 인증)를 잠금 해제 할 수 있습니까?

현재 gpg 비밀번호를 세 번 입력해야합니다 (서명, 암호 해독, 인증). 불편합니다.

쉘 스크립트를 생각해 보았습니다.

#!/bin/bash
set -x
set -e
set +o history

signing_key=77BB3C48
encryption_key=CE998547

tempfile="$(mktemp)"
echo "test" > testfile

unset passphrase || exit 1
read -sp 'Enter password. ' passphrase ; echo

exec 3<<<"$passphrase"

gpg2 --no-tty --use-agent --batch --yes --passphrase-fd 3 --sign-with "$signing_key" --clearsign "$tempfile"
gpg2 --no-tty --use-agent --verify "$tempfile.asc"

gpg2 --no-tty --use-agent --yes --armor --recipient "$encryption_key" --encrypt "$tempfile"

exec 3<<<"$passphrase"
gpg2 --no-tty --use-agent --batch --decrypt --passphrase-fd 3 "$tempfile.asc"

그러나 불행히도 암호 gnupg-agent는 암호를 캐시하지 않습니다. 이 문제를 해결할 수 있습니까?

시스템 정보:

  • 해당 쉘 스크립트를 사용하지 않으면 gnupg-agent에 문제가 없습니다. 쉘에서 파일을 수동으로 서명 / 암호 해독하면 pinentry가 암호를 두 번 요청한 다음 재부팅 할 때까지 캐시합니다.
  • 데비안 Wheezy 사용하기.
  • gpg 버전 :

dpkg -l | grep gnupg

ii  gnupg                                        1.4.12-7+deb7u3                    i386         GNU privacy guard - a free PGP replacement
ii  gnupg-agent                                  2.0.22-3                           i386         GNU privacy guard - password agent
ii  gnupg-curl                                   1.4.12-7+deb7u3                    i386         GNU privacy guard - a free PGP replacement (cURL)
ii  gnupg2                                       2.0.22-3                           i386         GNU privacy guard - a free PGP replacement (new v2.x)

gnupg-users 메일 링리스트에서 얼마 전에 물어 봤지만 답장은 없습니다.

아마도 대답은 일 것인가? 아마도 gpg-connect-agent필요할까요?


나는 감동했다 : exec 3<<<"$passphrase"나에게도 새롭다 ... 그리고 나는 당신이 인용 한 답에 250 명의 현상금을 던졌다.
Hauke ​​Laging

답변:


3

그놈 - 키링 - 데몬해마 매우 쉬운 키 및 암호 관리를한다.

기본적으로 그놈 키링 데몬을 gpg 에이전트로 실행하는 경우 GPG 키를 자동으로 잠금 해제 할 수 있습니다. 웹 사이트, GPG 키, SSH 키 등과 같은 암호를 포함하는 암호 키 링을 유지하여이를 수행합니다. 그런 다음이 암호 키 링은 자체 암호로 보안됩니다. 따라서 잠금을 해제하면 그놈 키링이 다른 모든 것을 잠금 해제합니다.
추가로 gnome-keyring-daemon에는 "로그인"키링이 있으며, 비밀번호가 사용자 비밀번호와 일치하면 로그인 할 때 키링이 자동으로 잠금 해제됩니다.


구성

이 작업을 수행하는 방법? 그놈 열쇠 고리 데몬과 해마를 설치하십시오. 패키지는 모든 시스템 구성을 수행해야합니다. 그냥 확실히 다른 열쇠 고리 데몬 또는 GPG 에이전트를 시작하지 않을 만든다 . 마지막 "승리"중 어느 것이 든 시작되고 그놈 키링은 PAM 스택에서 시작되므로 매우 빠릅니다.

GPG 키가에 저장된 경우 키가 ~/.gnupg자동으로 선택되어 GPG 에이전트 역할을합니다. SSH 키에 저장된 것과 동일~/.ssh

(I 간단한 명령 줄하여 트리거 : 개인 키를 사용하려고 처음,이 같은 모습이있는 대화 얻을 것이다 gpg -d myfile.gpg) 열쇠 고리 잠금 해제
그냥 "자동으로 I가 로그인하고있어 때마다이 열쇠 고리를 잠금 해제"를 선택을

지금 우리는 해마에 대해 이야기하지 않았습니다. 꼭 필요한 것은 아니기 때문입니다. 이 모든 것은 단지 일반적인 그놈 키링 데몬으로 이루어졌습니다. 그러나 해마를 사용하면 모든 키 및 열쇠 고리를보고 관리 할 수 ​​있습니다. 또한 중앙 집중식 인증 (LDAP)을 사용하는 경우 로그인 비밀번호를 변경할 때이를 사용하여 "로그인"키링의 비밀번호를 변경해야합니다.

해마-gpg 키


다른 비밀번호

앞서 언급했듯이 gnome-keyring-daemon은 웹 사이트 암호도 저장할 수 있습니다. 크롬을 마지막으로 확인했을 때이 기능을 지원하지만 파이어 폭스는 지원하지 않습니다. 그러나 작동시키는 데는 한 가지 트릭이 있습니다.
기본적으로 2 개의 키링, "로그인"키링 및 "기본"키링이 있습니다. "기본"키링이 기본값입니다 (따라서 이름). 그러나 별도의 키링이므로 자동으로 잠금 해제되지 않습니다. 해마에서 "로그인"키링을 마우스 오른쪽 버튼으로 클릭하면 "기본으로 설정"옵션이 있습니다. 이것을 선택하면 암호에 익숙해지기 시작합니다. 나는 개인적으로 "기본"을 삭제하고 모든 것에 "로그인"을 사용합니다.


나는 그놈 사용자가 아닙니다. 내가 그랬어 sudo apt-get remove gnupg-agent하고 sudo apt-get install gnome-keyring seahorse. 그런 /etc/X11/Xsession.d/999gnomekeyring다음 다음 내용 으로 파일 을 작성하십시오 . eval $(/usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh) export GNOME_KEYRING_CONTROL GNOME_KEYRING_PID GPG_AGENT_INFO SSH_AUTH_SOCK(그렇지 않으면 그놈 키링도 KDE에서 시작하지 않을 것입니다.) 자, 실행할 때 gpg -d myfile.gpg, 나는 암호를 입력하게됩니다 그것은 캐시됩니다,하지만 난 결코가 표시되지 않은 대화 상자를 표시합니다.
adrelanos 2014 년

(I가 시작 어디 돌아이기 때문에 이것은, 나쁜 서명 키를 별도로 캐시됩니다.). (주석 마크 업이 가능하지 평가 및 수출 라인 사이에 새로운 라인이 여기에 있습니다.)
adrelanos

데스크탑 관리자에도 그놈을 사용하지 않습니다. 필요하지 않습니다. Gnome은 데스크톱 관리자 이상의 기능을 수행합니다. 에 아무것도 추가하지 않아도됩니다 /etc/X11/Xsession.d. 이는 PAM 스택에서 수행되어야합니다. session optional pam_gnome_keyring.so auto_start에 하나 이상의 파일에 항목 이 있어야합니다 /etc/pam.d. 불행히도 나는 데비안을 사용하지 않으므로 어느 것을 알지 못합니다. 그것이 없다면 문제입니다.
Patrick

에 추가하지 않고 /etc/X11/Xsession.d, ps aux | grep gnome그놈 - 키링 - 데몬이 시작되지 않음을 보여줍니다. (그럼에도 불구하고, 그것을 제거했다.) /usr/share/doc/libpam-gnome-keyring/README.Debian말한다 If you want to start gnome_keyring from another display manager, you need to add the following lines to the corresponding /etc/pam.d/?dm file: auth optional pam_gnome_keyring.so session optional pam_gnome_keyring.so auto_start(개행 문자는 그 자체 의견에 의해 제거). 에 추가하여 /etc/pam.d/kdmkdm을 다시 시작했습니다. 에이전트로드가없고 사용할 수 없습니다.
adrelanos

나는 길을 잃었다. 당신이 사용 kdm하고 있고 그것을 넣었다면 /etc/pam.d/kdm그렇게 했어야합니다. 이 경로를 계속 찾고 싶다면 제안 할 수있는 유일한 것은 로그를 파는 것입니다. 잘못된 희망으로 죄송합니다. 이것이 간단한 해결책이라고 생각했습니다.
Patrick

0

나는 약간의 조사를했으며 그 결과는 놀랍지 만 간단합니다.

때이 방법으로 전화 gpg와 통신하지 않는 gpg-agent 전혀 ! gpg이러한 모든 작업을 자체적으로 수행 할 수 있습니다.

그러나 gpg-agent어떤 일이 일어났다는 것을조차 알지 못하면 이전에는 몰랐던 암호를 거의 알 수 없습니다.


내가 방법을 발견 한 것처럼 보이지만 어떻게 해결할 수 없습니까?
adrelanos 2014

내 원래 질문은 여전히 ​​열려 있습니다. (어느 쪽이든 Can I enter my gpg password just once and unlock all my sub keys (signing, decryption, authentication)?) 암호를 파이핑 gpg-agent하거나 gpg-connect-agent가능할 수 있기를 바랍니다 .
adrelanos 2013
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.