SSH, tmux 및 GnuPG 에이전트에 대한 모범 사례

SSH, tmux 및 GnuPG 에이전트에 대한 모범 사례

내 암호화 소프트웨어를 GnuPG에 통합하려고 하는데 혼란스러운 문제에 봉착했습니다.

내 주요 조직은 헤드리스 서버이고 tmux에서만 작업합니다. X 세션이 없으므로 pinentry-curses를 사용하도록 gpg-agent를 구성했습니다. 다음 스크립트를 사용하여 로그인 시 ssh-agent 가장을 통해 gpg-agent가 호출되도록 구성했습니다.

if pgrep -u "${USER}" gpg-agent >/dev/null 2>&1; then
    eval `cat $gnupginf`
    eval `cut -d= -f1 $gnupginf | xargs echo export`
else              
    eval `gpg-agent -s --enable-ssh-support --daemon`
fi

gpg-agent에 ssh 키를 추가했는데 다른 ssh 세션을 시도하면 명령이 중단됩니다.

gpg-agent를 종료하고 새 로그인 셸을 생성하면 에이전트가 정상적으로 작동한다는 것을 알았습니다(pinentry-curses를 호출한 다음 ssh-agent처럼 작동함).

그러나 다른 로그인 셸을 생성하고(예: 다른 tmux 창 열기) ssh를 시도하면 명령이 중단되고 원래 에이전트를 시작한 로그인 셸의 내용 위에 pinentry-curses 창이 인쇄됩니다.

또한 원래 에이전트를 시작한 셸을 닫으면 pinentry-curses가 호출되어 CPU를 소모하는 무한 루프가 발생합니다. (알려진 버그는 다음을 참조하세요.http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559936.)

기본적으로 GnuPG 에이전트가 ssh-agent처럼 원활하게 작동하도록 설정을 변경하는 방법을 알고 싶습니다. 도와주셔서 감사합니다!

답변1

이것은 매우 간단하다는 것이 밝혀졌습니다. 해당 스크립트를 사용하는 대신 이전 키체인 시작 스크립트에서 "--agents" 옵션을 제거했습니다(가이드여기).

이로 인해 키체인 프로그램이 ssh-agent 및 gpg-agent 파일을 찾습니다. 이제 내 암호화 시스템은 두 가지 유형의 프록시를 모두 사용하는 경우에도 매우 원활하게 작동합니다.

관련 정보