그놈 키링은 어디에 $ SSH_AUTH_SOCK를 설정합니까?


10

gnome-keyringSSH 에이전트로 제거하는 중 입니다.

내가 한 것들

  • 몇 시간 동안 인터넷을 검색했습니다.
  • 물건을 바꾸고 자주 다시 시작했습니다.
  • 마지막으로 rmSSH와 관련된 모든 자동 시작 항목을 -ed했습니다.

에이전트의 소켓 이 더 이상 없기 때문에 마지막으로 마술처럼 작동했습니다 .

/run/user/[uid]/keyring/ssh

문제

나머지 문제는 점이다 에도 불구하고 나의 멋진 상기 결과를 얻을, 뭔가gnome-keyring여전히이 설정에 대한 주장 SSH_AUTH_SOCK받는 지금 존재하지 않는 이상 소켓. 좀비와 비슷합니다. 이런 것들은 절대 죽지 않습니다.

질문

해당 변수를 설정하는 것은 무엇이며 어디에서 수행됩니까?

함정

  • 나는 하지 내가 다른 값으로 그 변수를 재설정 할 수있는 방법을 물어.
  • 나는 하지 나는 시스템 전체 또는 쉘 설정 파일에 값을 설정하는 방법 질문.
  • 나는 init-script voodoo incantations를 고정, 설정, 재설정, 설정 해제 또는 대체 할 것을 요구 하지 않습니다 .
  • 나는 물건을 제거하는 방법에 대한 조언을 요구 하지 않습니다 . 암호에 여전히 암호가 필요하며 Gnome에서 가장 통합되고 세련된 암호 관리자 인 것 같습니다.

나는 그 기능을 그대로 사용해야합니다.


2
그놈 키링을 제거 하시겠습니까?
rudimeier

1
@rudimeier : 나는 여전히 내 암호에 대해 그놈 키 링이 필요하며 그놈에 더 세련되고 통합 된 것이 없다는 것을 알고 있습니다.
JohnW

@rudimeier조차도 도움이되지 않는 것 같습니다. 나는 그것을 시도했다.
André Borie

답변:


8

당신이 Wayland를 사용하고 있습니다. 나는 오늘이 문제에 부딪 쳤고 해결책을 공유 할 것이라고 생각했다.

Gnome-Session에는 SSH_AUTH_SOCK어떤 이유로 든 언더 랜드에 하드 코딩 된 재정의가 있습니다 . 다음 커밋을 참조하십시오 : https://github.com/GNOME/gnome-session/commit/a8896ccad65583885735a04205351f48a42f29ae

해결 방법? 이 동작을 비활성화하려면 환경 변수를 설정하십시오 GSM_SKIP_SSH_AGENT_WORKAROUND=1. 이것은 환경 설정 코드를 단락시킵니다.

ssh-agent도 구성하려고하는 사람들을 위해 : ssh-agent의 시스템 단위 파일에 다음 줄이 있습니다.

ExecStartPost=/usr/bin/bash -c "/usr/bin/systemctl --user set-environment SSH_AUTH_SOCK=$SSH_AUTH_SOCK GSM_SKIP_SSH_AGENT_WORKAROUND=1"

전체 파일은 다음과 같습니다.

[Unit]
Description=SSH Agent
IgnoreOnIsolate=true

[Service]
Type=forking
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -a $SSH_AUTH_SOCK
ExecStartPost=/usr/bin/bash -c "/usr/bin/systemctl --user set-environment SSH_AUTH_SOCK=$SSH_AUTH_SOCK GSM_SKIP_SSH_AGENT_WORKAROUND=1"

[Install]
WantedBy=default.target

감사! Ubuntu v17.10 Artful Aardvark에서 단순히 export GSM_SKIP_SSH_AGENT_WORKAROUND=1~ / .profile에 추가 하고 재부팅하면 이전에 v17.04에서 작동했던 구성이 수정되었습니다.
Stephen Niedzielski

이것은 단지 Wayland 이상에 영향을 미치는 것으로 보입니다. gnome-flashback + i3을 사용하려고 할 때이 문제가 발생했습니다.
dragon788

제발 참고 그놈 3.24 이상 (때까지 그 해킹 작품 wiki.archlinux.org/index.php/GNOME/... )
파블로 Olmos 드 아길레라 C.

5

(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 디렉토리에있는 하나 의 행 을 추가 하기 만하면됩니다.


Gnome 키 링에 대한 자동 시작 항목을 비활성화하려고 시도했지만 변수가 여전히있는 것처럼 보이지만 존재하지 않는 소켓을 가리 킵니다 (키 링을 비활성화했지만 변수가 다른 곳에 설정되어 있음). 나는 아치 리눅스 머신을 사용하고있어서 가동이없고 systemd에 변수를 설정하는 명백한 것은 없다.
André Borie

@ AndréBorie 나는 아치도 체계도 모른다. 소켓 경로의 새로운 가치는 무엇입니까? 내 macihne에서 ssh-agent는 일반적으로로 설정합니다 /tmp/ssh-XXX/agent.PID. ssh-agent가 아직 프로세스 목록에 있습니까?
xhienne

경로는 원래 질문과 같습니다. SSH 에이전트 나 키링이 실행되고 있지 않습니다.
André Borie

이 답변은 정말 오래되었지만 너무 도움이 되길 바랍니다. unix.stackexchange.com/questions/422574/…
Ojs

3

https://wiki.archlinux.org/index.php/GNOME/Keyring#Disable_keyring_daemon_components

다른 SSH 에이전트 (예 : ssh-agent 또는 gpg-agent)를 실행하려면 GNOME Keyring의 ssh 구성 요소를 비활성화해야합니다.

mkdir ~/.config/autostart
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/ &&
echo 'Hidden=true' >> ~/.config/autostart/gnome-keyring-ssh.desktop

그런 다음 로그 아웃하십시오.

약간 쓸모없는 사용을 제거하여 가볍게 편집 printf


이것은 우분투 14.04에서도 작동합니다.
pts

이것은 3.24 이상에 해당됩니다.
Pablo Olmos de Aguilera C.

0

그놈 3.18부터 소켓은 ~/.cache/keyring-(some random string)/ssh

짐작할 수 있겠지만, 그놈 키링 데몬에 의해 설정됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.