SSH_AUTH_SOCK kann mit launchctl setenv nicht geändert werden

SSH_AUTH_SOCK kann mit launchctl setenv nicht geändert werden

Ich möchte den Wert auf einem OSX El Capitan-System an eine andere Stelle setzen SSH_AUTH_SOCK. Ich habe dies versucht, indem ich den folgenden Befehl ausführte:

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

SSH_AUTH_SOCKDer Standardwert bleibt jedoch auch nach einem Neustart des Terminals bestehen:

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

Aber interessanterweise erhalte ich das gewünschte Ergebnis, wenn ich den Wert von SSH_AUTH_SOCKusing abfrage:launchctl

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

Wie kann ich den Wert SSH_AUTH_SOCKsystemweit richtig einstellen?

BEARBEITEN: SSH_AUTH_SOCKwurde in keiner der Shell-Startdateien festgelegt (z ~/.zshrc. B. , /etc/zshrc, /etc/zprofile)

Antwort1

Dies ist größtenteils aus dem hervorragenden Beitrag entnommenHier.

Sie müssen in Ihrem ~/Library/LaunchAgentsVerzeichnis eine plist-Datei mit dem folgenden Inhalt erstellen.

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

Sollte funktionieren.

verwandte Informationen