SSH 키를 관리하기 위해 gnupg를 설정하는 방법에 대한 튜토리얼에 따라 gpg-agent의 여러 인스턴스를 성공적으로 실행했습니다.
[root@frylock ~]# ps aux | grep agent
root 2764 0.0 0.0 4208 432 ? Ss 11:15 0:00 ssh-agent
xtian 2785 0.0 0.1 3500 972 ? Ss 11:18 0:00 gpg-agent -s --enable-ssh-support --daemon --write-env-file /home/frylock/xtian/.gnupg/gpg-agent.env
root 2958 0.0 0.0 3168 688 ? Ss 11:39 0:00 gpg-agent -s --enable-ssh-support --daemon --write-env-file /root/.gnupg/gpg-agent.env
root 3036 0.0 0.0 4740 392 ? Ss 11:43 0:00 gpg-agent --daemon
root 3186 0.0 0.0 4740 388 ? Ss 11:53 0:00 gpg-agent --daemon
root 3299 0.0 0.0 4740 388 ? Ss 11:58 0:00 gpg-agent --daemon
root 3549 0.0 0.0 4740 392 ? Ss 12:54 0:00 gpg-agent --daemon
다섯 번째로 지침을 검토하면서 혼란을 대부분 해소할 수 있었습니다. 그러나 내가 이해하지 못하는 것은 루트로 tty에 로그인했을 때 왜 내 사용자 계정의 소유자가 실행 중인 프로세스입니까?
답변1
일반적으로 로그아웃하면 사용자와 대화형으로 연결된 애플리케이션이 종료됩니다. 텍스트 터미널(로컬 또는 원격)에 로그인할 때, 로그아웃할 때(커널에 의해 직접 또는 셸에 의해 간접적으로) 해당 터미널에 연결된 모든 응용 프로그램이 종료됩니다. 그래픽 환경에 로그인하면 로그아웃할 때 X 서버에 연결된 모든 응용 프로그램이 종료됩니다(더 정확하게는 X 서버에 대한 연결이 끊어져 대부분의 응용 프로그램이 종료됩니다).
로그오프해도 사용자가 시작한 모든 프로세스가 종료되지는 않습니다. 사용자는 프로그램이 백그라운드에서 실행되거나 여러 세션에 로그인되기를 원할 수 있습니다.
ssh-agent
및 같은 응용 프로그램은 gpg-agent
대화형이 아니므로 터미널이나 X 서버에 연결되지 않습니다. 일반적인 설정에서는 다른 수단으로 그들을 죽일 수 있습니다. 일반적으로 에이전트는 전체 세션의 상위 프로세스입니다. 세션 시작 스크립트는 ssh-agent $SHELL
또는 같은 것을 실행하도록 예약됩니다 ssh-agent $SESSION_MANAGER
. 이렇게 하면 세션 리더인 하위 프로세스가 종료될 때 에이전트도 종료됩니다(에이전트가 설계된 방식이기 때문입니다). 에이전트가 다르게 시작된 경우 세션 관리자가 에이전트를 종료하도록 조정합니다.
튜토리얼을 따라하면서 실험했을 때 튜토리얼 작성자가 예상하지 못한 방식으로 많은 에이전트 프로세스를 시작했으며 세션이 종료되지 않았습니다. 사용하지 않는 것을 죽일 수 있습니다. 안정적인 설정에 도달하면 로그아웃 시 에이전트가 종료되는지 확인하세요. (단일 에이전트를 실행하고 영원히 실행하는 것을 선호하지 않는 한 이는 개인용 컴퓨터에서 합리적인 옵션일 수 있습니다.)