(OP의 환경은 알려지지 않았으므로 여기에 주어진 경로는 내 우분투 컴퓨터에서 찾은 경로입니다)
그놈 키링은 어디에서 SSH_AUTH_SOCK를 설정합니까?
주요 질문 제목에 대답하기 위해 SSH_AUTH_SOCK는 /usr/share/upstart/sessions/gnome-keyring-ssh.conf
다음 명령 으로 gnome-keyring에 의해 설정됩니다 .
initctl set-env --global SSH_AUTH_SOCK=$SSH_AUTH_SOCK
initctl
매뉴얼 인용 :
initctl set-env VARIABLE[=VALUE]
작업 환경 테이블에서 변수를 추가하거나 업데이트합니다. 이러한 방식으로 설정된 변수는 작업의 모든 후속 시작 프로세스에 적용됩니다.
-g
, --global
글로벌 작업 환경 테이블 및 기존의 모든 실행중인 작업 환경 테이블에서 작동하십시오.
SSH_AUTH_SOCK는 처음부터 어디에서 왔습니까?
initctl
위 의 명령은 환경 변수 SSH_AUTH_SOCK가 이미 존재한다는 사실을 조건으로합니다. 닭과 계란 상황인가요? 무엇을 설정합니까?
SSH_AUTH_SOCK는 X 세션의 맨 처음에 시작되는 원래 ssh-agent에 의해 초기에 설정됩니다. 매뉴얼 인용 :
UNIX 도메인 소켓이 작성되고이 소켓의 이름이 SSH_AUTH_SOCK
환경 변수에 저장됩니다 . 소켓은 현재 사용자 만 액세스 할 수 있습니다.
그러나 gnome-keyring의 ssh 구성 요소는 기존 ssh-agent를 대신합니다. 따라서 자체 소켓으로 SSH_AUTH_SOCK를 덮어 써서 /run/user/.../keyring-.../ssh
응용 프로그램이 ssh-agent가 아닌 소켓과 통신하도록합니다.
비활성화하는 방법
자, 마지막 문장 "나는 그 일을 비활성화하고 싶다"라고 대답합시다. OP가 원하는 것은 gnome-keyring의 ssh 구성 요소에 의한 SSH_AUTH_SOCK 덮어 쓰기를 비활성화하는 것입니다. 그들은 처음에 ssh-agent에 의해 설정된 "true"SSH_AUTH_SOCK 변수를 되 찾으려고합니다.
ssh 구성 요소는 위에서 언급 한 동일한 시작 스크립트 ( /usr/share/upstart/sessions/gnome-keyring-ssh.conf
)에 의해 시작 되지만 한 가지 조건에서 시작 X-GNOME-Autostart-enabled=false
합니다. 다음 파일 중 하나에서 문자열을 찾을 수 없습니다.
- (시스템 전체의 conf)
/etc/xdg/autostart/gnome-keyring-ssh.desktop
- (사용자 conf)
~/.config/autostart/gnome-keyring-ssh.desktop
따라서,이를 사용 불가능 X-GNOME-Autostart-enabled=false
하게하려면,이 파일 중 하나, 바람직하게는 HOME 디렉토리에있는 하나 의 행 을 추가 하기 만하면됩니다.