Me estoy conectando a través de SSH desde una máquina donde se almacenan mis claves, reenvío a una segunda máquina y luego trato de usar las claves desde tmux. Parece que "pierdo" el reenvío al ingresar a tmux. ¿Cómo puedo "reenviar de nuevo" para poder usar mis claves desde dentro de tmux?
$ ssh [server] -o ForwardAgent=yes
$ git pull # Succeeds.
$ /bin/bash
$ git pull # Still succeeds, despite new shell.
$ exit
$ tmux attach
$ git pull # Permission denied (publickey)
Respuesta aceptada:
Si está adjuntando una sesión tmux ya existente, el shell no hereda las variables de entorno de su shell de inicio de sesión. En particular, no heredará las variables de entorno del agente ssh.
Prueba esta solución:
-
Cree este script y colóquelo en $HOME/.ssh/saveagent
#!/bin/sh SSHVARS="SSH_CLIENT SSH_TTY SSH_AUTH_SOCK SSH_CONNECTION DISPLAY" for var in ${SSHVARS} ; do echo "export $var="$(eval echo '$'$var)"" done 1>$HOME/.ssh/latestagent
-
Agréguelo a su secuencia de comandos de inicio de shell. Por ejemplo, si usa bash:
echo '. ~/.ssh/saveagent' >> ~/.bash_login
-
Después de adjuntar el tmux, ejecute
. $HOME/.ssh/latestagent