В основном я работаю над подключением mac и ssh / tmux к машине Linux, чтобы выполнять свою работу. У меня есть ssh-agent, работающий на машине с Linux. я имею
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
?