Me conecto 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 entrar en tmux. ¿Cómo puedo "reenviar de nuevo" para que pueda usar mis claves desde 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)
Respuestas:
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 póngalo en $ HOME / .ssh / saveagent
Agréguelo a su script de inicio de shell. Por ejemplo, si usas bash:
Después de conectar el tmux, ejecute
. $HOME/.ssh/latestagent
Consulte también ¿Cómo puedo ejecutar un script inmediatamente después de conectarme a través de SSH? y adjuntar a la sesión tmux y ejecutar un comando
fuente
saveagent
guión debe ser:echo "export $var=\"$(eval echo '$'$var)\""
. b: ellatestagent
script debe llamarse con ensource
lugar desh
, por lo que establecer las variables afectará al shell de llamada. c: la invocaciónlatestagent
automática del script al adjuntar tmux se puede realizar mediante el método descrito aquí: unix.stackexchange.com/questions/86925/…A menos que desee obtener una secuencia de comandos que contenga todas las variables que necesita en cada shell que genere en cualquier nuevo shell generado por las mismas
tmux
sesiones de servidor, es probable que desee indicartmux
que coloque las variables en la sesión o entornos globales con elset-environment
comando. Por ejemplo así (para bash):recuerde agregar el
-g
indicador si también lo desea en otras sesiones y usarlo-t <session>
si lo está ejecutando desde fueratmux
.fuente
Después de leer las otras respuestas aquí, decidí copiar mi par de claves pública / privada en el servidor remoto, para no tener que preocuparme más por el reenvío de agentes.
fuente