Pracuję głównie na komputerze Mac i ssh / tmux podłączonym do komputera z systemem Linux, aby wykonać swoją pracę. Mam ssh-agent działający na komputerze z systemem Linux. mam
set -g update-environment "SSH_AUTH_SOCK SSH_ASKPASS WINDOWID SSH_CONNECTION XAUTHORITY"
w moim .tmux.conf
. Jednak za każdym razem, gdy ponownie dołączam do tej sesji, muszę biegać
tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK
aby nowe okna tmux $SSH_AUTH_SOCK
ustawiły się poprawnie. Wolałbym tego nie robić. Jakieś pomysły?
Aktualizacja
Myślę, że nie wyjaśniam tego dobrze. Oto moja funkcja powłoki, aby otworzyć powłokę na zdalnym komputerze:
sshh () {
tmux -u neww -n ${host} "ssh -Xt ${host} $*"
}
Kiedy tmux uruchamia to polecenie ssh, nie$SSH_AUTH_SOCK
jest ustawione, mimo że jest ustawione w moim lokalnym środowisku. Jeśli umieszczę to w środowisku tmux za pomocą powyższego polecenia, wszystko działa dobrze. Moje pytanie brzmi: dlaczego w ogóle muszę uruchamiać komendę setenv?setenv
Aktualizacja 2
Więcej informacji:
Gdy dołączam się do istniejącej sesji, $SSH_AUTH_SOCK
nie jest ustawiony w środowisku tmux (lub środowisku globalnym).
% tmux showenv | grep -i auth_sock
-SSH_AUTH_SOCK
Jeśli ustawię to ręcznie, wszystko działa:
% tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK
Jeśli odłączę się i ponownie dołączę, $SSH_AUTH_SOCK
wróci do nie ustawiania.
env
?