
내 Manjaro에서 시스템 서비스로 설정했습니다 ssh-agent
(다음의 지침에 따라).여기). 서비스 자체 외에도 SSH_AUTH_SOCK
환경 변수를 로 설정해야 합니다 ${XDG_RUNTIME_DIR}/ssh-agent.socket
. 위에서 언급한 지침에는 이를 넣거나 .zshrc
이에 상응하는 내용이 나와 있습니다. ssh-agent를 사용해야 할 때 주로 명령줄을 사용하기 때문에 이는 대부분의 애플리케이션에 적합합니다.
그러나 VSCode가 dmenu에서 시작되면 실행되지 않으므로 환경 변수를 .zshrc
상속하지 않습니다 . $SSH_AUTH_SOCK
따라서 이것이 작동하려면 이 변수를 전역적으로 설정해야 합니다. 보고 있다아치스 위키, (내가 볼 수 있는) 유일한 방법은 을 통해서입니다 pam_env
. 그러나 이것은 나에게는 작동하지 않습니다.
SSH_AUTH_SOCK DEFAULT=${XDG_RUNTIME_DIR}/ssh-agent.socket
, /etc/environment
그러나 VSCode는 process.env
여전히 변수를 정의하지 않습니다. 나도 시도했다
SSH_AUTH_SOCK DEFAULT=/run/user/1000/ssh-agent.socket
하지만 아직 설정되지 않았습니다.
이는 분명히 환경 문제입니다. 마치 .zshrc
셸에서 VSCode(런타임) 를 실행하는 것처럼 $SSH_AUTH_SOCK
매우 유사한 문제는 다음과 같습니다.여기에 신고하세요하지만 실제로는 해결책이 없습니다.
답변1
해결책:
다음에 추가 /etc/security/pam_env.conf
:
SSH_AUTH_SOCK DEFAULT=${XDG_RUNTIME_DIR}/ssh-agent.socket
기타 유용한 정보:
왜 처음에는 작동하지 않았습니까 /etc/environment
?:
/etc/environment
~/.pam_environment
또는 와 다른 형식을 따릅니다 /etc/security/pam_env.conf
.여기에 문서화된 대로:
/etc/environment
:
VARIABLE=value
~/.pam_environment
그리고 /etc/security/pam_env.conf
:
VARIABLE [DEFAULT=value] [OVERRIDE=value]
그래서 형식이 잘못되었습니다.
왜 /etc/security/pam_env.conf
다른 두 개 대신에 그것을 사용합니까?:
왜냐하면 그것이 현재와 미래에도 완전히 유효한 유일한 선택이기 때문입니다.
/etc/environment
환경 변수를 읽지 않으므로 ${XDG_RUNTIME_DIR}
아무런 효과가 없습니다. 의 내용을 하드코딩할 수 있지만 $XDG_RUNTIME_DIR
변수(및 해당 디렉터리)는 다음과 같이 표시됩니다.pam_systemd
사용자별로 동적으로. 따라서 신뢰할 수 있는 옵션이 아닙니다.
~/.pam_environment
동일한 작업을 성공적으로 수행 /etc/security/pam_env.conf
하지만 "더 이상 사용되지 않으며 향후 어느 시점에 제거될 예정입니다"(범죄). 따라서 미래에도 사용할 수 있도록 사용해서는 안 됩니다.
방금 떠났다 /etc/security/pam_env.conf
. 현재 작동 ${XDG_RUNTIME_DIR}
하며 더 이상 사용되지 않습니다.
답변2
내 시스템에서는 /usr/bin/code
쉘 스크립트에 지나지 않습니다. 추가 내보내기 문을 추가하여 수정하거나 다른 스크립트에서 호출하여 먼저 필요한 환경 변수를 내보낼 수 있습니다. 예를 들어:
#!/bin/zsh
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
/usr/bin/code #path to your executable for VSCode
/etc/X11/Xsession
Linux 환경의 X11에 대해 이야기하는 경우 X11 세션의 전역 환경 설정은 디렉터리에 있는 파일에서 설정할 수 있으며 더 좋습니다 /etc/X11/Xsession.d
.
사용자 설정의 경우 를 사용하거나 $HOME/.xsession
재정의합니다 $HOME/.Xsession
.$HOME/.xsessionrc
이 파일의 사용은 main /etc/X11/Xsession
(적어도 내 Debian 시스템에서는)에 포함됩니다.