GNOME Shell, Wayland 및 SystemD에서 SSH 에이전트 교체

GNOME Shell, Wayland 및 SystemD에서 SSH 에이전트 교체

저는 GNOME 3/GNOME Shell을 데스크탑 환경으로, Wayland를 디스플레이 서버로, SystemD를 init로 실행하는 Fedora 24(amd64)를 사용하고 있습니다. 기본적으로 매우 표준적인 방식으로 Fedora 24가 출시됩니다.

내 이전 배포판은 여전히 ​​사용됩니다. 그래픽 프로그램을 시작할 때 사용할 수 있도록 합니다. 이를 통해 unison-gtk와 같은 프로그램은 올바른 SSH_AUTH_SOCK환경 변수를 갖게 되어 gpg-agent를 SSH 에이전트로 사용할 수 있습니다. Bash 세션 내에서 실행되는 모든 것은 내 .bashrc의 환경 변수를 사용하지만 그래픽 응용 프로그램은 액세스를 위해 이를 내보내야 합니다.

이러한 환경 변수를 내보내고 해당 디스플레이 서버 + 데스크톱 환경에서 실행되는 응용 프로그램에서 사용할 수 있도록 하는 Wayland/GNOME/SystemD에 동등한 도구가 있습니까?

답변1

systemctl --user import-environment SSH_AUTH_SOCK스크립트에서 사용해 보세요 /etc/X11/xinit/xinitrc.d/. 참고로 확인해 보세요 /etc/X11/xinit/xinitrc.d/50-systemd-user.sh.

답변2

gpg 에이전트에서 SSH 지원을 활성화하고 행을 추가한 enable-ssh-agent다음 ~/.gnupg/gpg-agent.conf로그아웃했다가 다시 로그인하세요.

이 설정이 선택되었습니다 /etc/X11/Xsession.d/90gpg-agent.

문제는 이것이 X11 프로그램에서만 작동한다는 것입니다. 기본 Wayland 클라이언트는 영향을 받지 않습니다. 이 문제를 해결하려면 gpgconf --list-dirs agent-ssh-socket인쇄되는 내용 에 따라 두 가지 옵션이 있습니다 .

  • 고정 경로인 경우 파일을 만들고 .config/environment.d/ssh.conf다음 출력을 추가합니다.

    SSH_AUTH_SOCK=/run/user/XXX/gnupg/S.gpg-agent.ssh
    

    또는 gpgconf인쇄하는 동안 발생하는 다른 모든 것.

  • 다음에 로그인할 때 다른 곳에 있는 임시 파일인 경우 다음 줄을 자신의 파일 .bashrc(또는 사용 중인 쉘에 해당하는 항목)에 추가하세요.

    if [ -z "$SSH_AUTH_SOCK" ] ; then
        export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
    fi
    dbus-update-activation-environment --systemd SSH_AUTH_SOCK
    

    이는 첫 번째 셸 이후에 시작된 셸 및 기타 Wayland 프로그램에만 적용되지만 충분합니다.

답변3

너무 늦었지만 다른 사람에게 도움이 될 수 있습니다.

~에 따르면Gnome Keyring SSH 에이전트 위키 페이지Gnome Keyring에서 SSH 에이전트 지원을 비활성화할 수 있습니다.

해당 소스에서 복사하여 붙여넣은 관련 정보는 다음과 같습니다.

시스템 리셀러 또는 사용자로서 다른 SSH 에이전트(예: ssh-agentOpenSSH와 함께 제공되는 에이전트)를 사용하는 경우 SSH가 기본 SSH 에이전트 대신 SSH를 사용하지 못하도록 GNOME 키링에서 SSH 에이전트를 비활성화해야 할 수도 있습니다.

그놈 키링 SSH 에이전트를 비활성화하는 방법에는 여러 가지가 있습니다:

  • "응용 프로그램 실행" capplet(예: gnome-session-properties)을 사용하고 "SSH 키 에이전트" 실행 프로그램을 비활성화합니다.
  • gnome-keyringSSH 지원 없이 구축할 수 있습니다. 다음 구성 옵션을 사용하십시오.
    $ ./configure --disable-ssh-agent
    
  • gnome-keyring수동으로 또는 스크립트에서 시작하는 경우 이 --components옵션을 사용하여 SSH 지원을 시작에서 제외할 수 있습니다.
    $ gnome-keyring-daemon --components keyring,pkcs11
    

관련 정보