Principalmente trabajo en un mac y ssh / tmux se conecta a una máquina Linux para hacer mi trabajo. Tengo ssh-agent ejecutándose en la máquina Linux. yo tengo
set -g update-environment "SSH_AUTH_SOCK SSH_ASKPASS WINDOWID SSH_CONNECTION XAUTHORITY"
en mi .tmux.conf
. Sin embargo, cada vez que me vuelvo a conectar a esta sesión, tengo que ejecutar
tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK
para que las nuevas ventanas tmux se hayan $SSH_AUTH_SOCK
configurado correctamente. Preferiría no tener que hacer esto. ¿Algunas ideas?
Actualizar
Creo que no estoy explicando esto bien. Aquí está mi función de shell para abrir un shell en una máquina remota:
sshh () {
tmux -u neww -n ${host} "ssh -Xt ${host} $*"
}
Cuando tmux ejecuta este comando ssh, no$SSH_AUTH_SOCK
está configurado, aunque esté configurado en mi entorno local. Si pongo esto en el entorno de tmux con el comando anterior, todo funciona bien. Mi pregunta es, ¿por qué tengo que ejecutar el comando setenv?setenv
Actualización 2
Más información:
Cuando me adjunto a una sesión existente, $SSH_AUTH_SOCK
no se establece en el entorno tmux (o entorno global).
% tmux showenv | grep -i auth_sock
-SSH_AUTH_SOCK
Si lo configuro manualmente, las cosas funcionan:
% tmux setenv SSH_AUTH_SOCK $SSH_AUTH_SOCK
Si lo separo y lo $SSH_AUTH_SOCK
vuelvo a conectar, vuelve a no estar configurado.
env
?