Est-il possible de générer un ssh-agent pour une nouvelle session de tmux?

J'ai vu beaucoup de hacks pour rétablir le contact avec l'agent SSH d'une session GUI à partir des sessions de tmux (et d'écran). Je me demande s'il est possible de désactiver l'interface graphique et générer un agent ssh uniquement pour une utilisation dans une session donnée de tmux? L'agent devrait-il "utiliser" l'une des fenêtres de tmux pour éviter d'être tué ou est-il possible de générer l'un en arrière-plan qui persiste tant que la session est en vie?

OK J'ai fait un peu plus de creusage autour et je devrais facilement accrocher à n'importe quel SSH_AGENT est autour quand le terminal est attaché. Tmux fournit déjà la configuration de clé "mise à jour-environnement", mais la pièce manquante est que les shells existants ne sont pas mis à jour par magie. Cependant, tmux suit les variables d'environnement mises à jour, de sorte que le script de mise à jour est beaucoup moins difficile que les écrans:

# Sync the environment of an existing shell # # tmux already updates the environment according to # the update-environment settings in the config. However # for existing shells you need to sync from from tmux's view # of the world. function tmux_sync_env { external_env=`tmux showenv | grep -v "^-"` export ${external_env} } 

De ce commit

J'ai dû modifier la réponse de @stsquad. Il me manquait parce que la commande export ne pouvait pas définir la variable SSH_CONNECTION .

J'ai dû envelopper la valeur de SSH_CONNECTION entre guillemets.

 function tmux_sync_env { ssh_auth_sock=`tmux showenv | grep "^SSH_AUTH_SOCK"` ssh_connection=`tmux showenv | grep "^SSH_CONNECTION"` export ${ssh_auth_sock} export "${ssh_connection}" } 

Une autre option que j'ai trouvée récemment est l'utilitaire de porte-clés de Daniel Robbins qui offre une bonne façon de se reconnecter et d'avoir un agent utilisateur / hôte large au lieu d'une simple session.