Я в основному працюю над mac і ssh / tmux, приєднаним до машини Linux, щоб виконувати свою роботу. У мене на сервері Linux працює ssh-агент. Я маю
set -g update-environment "SSH_AUTH_SOCK SSH_ASKPASS WINDOWID SSH_CONNECTION XAUTHORITY"
в моєму .tmux.conf
. Тим не менш, щоразу, коли я знову приєднаюся до цього сеансу, мені доводиться бігати
tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK
для того, щоб нові вікна tmux $SSH_AUTH_SOCK
правильно встановили. Я вважаю за краще не робити цього. Будь-які ідеї?
Оновлення
Я думаю, що я не пояснюю це добре. Ось моя функція оболонки, щоб відкрити оболонку на віддаленій машині:
sshh () {
tmux -u neww -n ${host} "ssh -Xt ${host} $*"
}
Коли tmux запускає цю команду SSH, $SSH_AUTH_SOCK
це НЕ встановлено, навіть якщо він буде встановлений в моїй локальному середовищі. Якщо я поставив це в середовище tmux за допомогою setenv
команди вище, все працює добре. Моє запитання: чому я взагалі повинен запускати команду setenv?
Оновлення 2
Більше інформації:
Коли я приєднуюся до існуючого сеансу, $SSH_AUTH_SOCK
не встановлюється в середовищі tmux (або глобальному середовищі).
% tmux showenv | grep -i auth_sock
-SSH_AUTH_SOCK
Якщо я встановив його вручну, все працюватиме:
% tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK
Якщо я від'єднаюсь і знову приєднаюся, $SSH_AUTH_SOCK
повертається до не встановленого.
env
?