2

Я хочу установить значение SSH_AUTH_SOCK в другом месте в системе OSX 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 с помощью 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 ответ1

0

В основном это извлечено из превосходного поста здесь.

Вам нужно создать plist-файл в вашем каталоге ~/Library/LaunchAgents со следующим содержимым.

<?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>

Должен сделать свое дело.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .