Tengo una clave privada configurada para mi cuenta de github, la frase de contraseña a la que, creo, está almacenada en el llavero de OS X. Ciertamente no tengo que escribirlo cuando abro una ventana de terminal y entro ssh [email protected].
Sin embargo, cuando ejecuto bash sobre una sesión ssh, o localmente dentro de una sesión tmux, tengo que escribir la frase de contraseña cada vez que intento ssh a github.
Esta pregunta sugiere que existe un problema similar con la pantalla, pero realmente no entiendo el problema lo suficientemente bien como para solucionarlo en tmux. También existe esta página que incluye una solución bastante complicada, pero para zsh.
EDITAR :
En respuesta a la respuesta de @ Mikel , desde un terminal local obtengo el siguiente resultado:
[~]
$ echo $SSH_AUTH_SOCK
/tmp/launch-S4HBD6/Listeners
[~] 
$ ssh-add -l
2048 [my key fingerprint] /Users/richie/.ssh/id_rsa (RSA)
[~]
$ typeset -p SSH_AUTH_SOCK
declare -x SSH_AUTH_SOCK="/tmp/launch-S4HBD6/Listeners"
Mientras que sobre ssh o en tmux obtengo:
[~]
$ echo $SSH_AUTH_SOCK
[~]
$ ssh-add -l
Could not open a connection to your authentication agent.
[~]
$ typeset -p SSH_AUTH_SOCK
bash: typeset: SSH_AUTH_SOCK: not found
echo $SSH_AGENT_PID no devuelve nada desde el shell desde el que lo ejecuto.

typeset -p SSH_AUTH_SOCK?bash: typeset: SSH_AUTH_SOCK: not founddesde ssh / tmux. Lo intentaré localmente esta noche, si es necesario.Respuestas:
Mi colega creó algunas funciones bash para ayudar a encontrar un agente en vivo: https://github.com/wwalker/ssh-find-agent
Lo usa principalmente para conectarse entre sistemas (computadora portátil a escritorio, etc.), pero lo uso con mayor frecuencia para sesiones tmux locales en las que cierra sesión / inicia sesión desde su administrador de ventanas (OS X para mí).
Uso
Descargar ssh-find-agent.bash (
git clone git://github.com/wwalker/ssh-find-agent.gitfunciona).Agregue lo siguiente a ~ / .bashrc:
Luego puede escribir lo siguiente para establecer SSH_AUTH_SOCK en su shell actual:
fuente
Una solución elegante, recogida de dagit.o :
Crear
~/.ssh/rcañadir
~/.tmux.conffuente
En su
.tmux.confarchivo de configuración, agregue esta línea:Esto hace que estas variables de entorno se copien de su shell principal a cualquier shells abiertos dentro de tmux, lo que permite que ssh-agent funcione correctamente dentro de esos tmux shells.
fuente
update-environment. El OP debe verificar suupdate-environmentvalor y posiblemente actualizarse donde ya se esté cambiando.update-environmentestá configurado correctamente Sin embargo, el problema aún ocurre.tmuxservidor presente, desafiando el propósito de volver a conectar ... ¿Tal vez hay un interruptor de línea de comando para volver a actualizar esas variables?Me sucedió que los paneles creados al conectarse a través de ssh desde OS X comenzaron a preguntar mi frase de contraseña después de un tiempo de trabajo. Encontré una manera de arreglar eso robando esta línea de http://santini.di.unimi.it/extras/ph/my-tmux-setup.html
Simplemente ejecútalo desde el panel que se queja.
fuente
No estoy seguro de si está usando bash u otro shell, pero la configuración tmux de este tipo parece que funcionaría para bash. Personalmente, estoy usando zsh con oh-my-zsh , y descubrí que ssh-agent comenzó a trabajar en tmux después de agregar
a mi archivo .zshrc y volví a cargar la configuración en mis sesiones zsh en ejecución. También encontré la solución orientada a zsh de este tipo , pero resultó ser innecesaria para mí.
fuente
Que hace:
¿impresión?
Ejecútelo en su terminal normal, luego ejecútelo dentro de su
tmuxsesión. Deberían imprimir lo mismo.fuente
sshes fácil. Active el reenvío de agente. La forma más fácil de hacerlo es ejecutarlo enssh -Alugar de hacerlossh. Use un alias para no tener que escribirlo todo el tiempo o ponerlo en su.SSH/config.Hay muchas soluciones, pero la más simple se encuentra en la respuesta de Hans Ginzel, del 8 de enero de 2016, a una pregunta relacionada de StackOverflow del 27 de enero de 2014 . Simplemente agregue lo siguiente a su shell
~/.profileo similar:No es necesario definir funciones de varias líneas o crear nuevos archivos temporales. Si no desea un alias
ssh, simplemente cámbielofixsshy elimínelo&& sshal final, y ejecútelofixsshsiempre que intente ejecutarlosshdesde una sesión tmux reenganchada.La respuesta de Hans Ginzel sugiere que se requiere una 'versión más nueva' de tmux para ejecutarse
show-env -s. Esto funciona para mí en tmux 2.7, y en mi lectura del registro de cambios ,-sse agregó el 3 de junio de 2008 justo antes del lanzamiento de tmux 0.3. tmux 2.3 (29 de septiembre de 2016) está en Debian estable.fuente