Je me connecte via SSH à partir d'une machine sur laquelle mes clés sont stockées, je les transmets à une deuxième machine, puis j'essaie d'utiliser les clés depuis tmux. J'ai l'impression de "perdre" le transfert lors de la saisie de tmux. Comment puis-je "transférer à nouveau" afin que je puisse utiliser mes clés depuis 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)
Réponse acceptée :
Si vous attachez une session tmux déjà existante, le shell n'hérite pas des variables d'environnement de votre shell de connexion. En particulier, il n'héritera pas des variables d'environnement de l'agent ssh.
Essayez ce correctif :
-
Créez ce script et placez-le dans $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
-
Ajoutez-le à votre script de démarrage du shell. Par exemple si vous utilisez bash :
echo '. ~/.ssh/saveagent' >> ~/.bash_login
-
Après avoir attaché le tmux, exécutez
. $HOME/.ssh/latestagent