launchctl setenv를 사용하여 SSH_AUTH_SOCK을 변경할 수 없습니다.

launchctl setenv를 사용하여 SSH_AUTH_SOCK을 변경할 수 없습니다.

SSH_AUTH_SOCKOSX El Capitan 시스템의 다른 위치에 값을 설정하고 싶습니다 . 다음 명령을 실행하여 그렇게하려고했습니다.

$ launchctl setenv SSH_AUTH_SOCK ~/.gnupg/S.gpg-agent.ssh

그러나 SSH_AUTH_SOCK터미널을 다시 시작한 후에도 여전히 기본값을 유지합니다.

$ echo $SSH_AUTH_SOCK
/private/tmp/com.apple.launchd.XXXXXXXXXX/Listeners

SSH_AUTH_SOCK하지만 흥미롭게도 using 값을 쿼리하면 launchctl원하는 결과를 얻습니다.

$ launchctl getenv SSH_AUTH_SOCK
/Users/sora/.gnupg/S.gpg-agent.ssh

SSH_AUTH_SOCK시스템 전체 의 값을 올바르게 설정하려면 어떻게 해야 합니까 ?

편집: SSH_AUTH_SOCK쉘 시작 파일(예: , ,)에 설정 ~/.zshrc되지 /etc/zshrc않았습니다 /etc/zprofile.

답변1

이 내용은 대부분 우수 게시물에서 발췌되었습니다.여기.

~/Library/LaunchAgents다음 내용으로 디렉터리 에 plist 파일을 만들어야 합니다 .

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>link-ssh-auth-sock</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/sh</string>
    <string>-c</string>
    <string>/bin/ln -sf $HOME/.gnupg/S.gpg-agent.ssh $SSH_AUTH_SOCK</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

트릭을 수행해야합니다.

관련 정보