Mi sto connettendo tramite SSH da una macchina in cui sono archiviate le mie chiavi, l'inoltro a una seconda macchina e quindi provo a utilizzare le chiavi da tmux. Mi sembra di "perdere" l'inoltro quando si entra in tmux. Come posso "inoltrare di nuovo" in modo da poter usare le mie chiavi da 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)
Risposta accettata:
Se stai allegando una sessione tmux già esistente, la shell non sta ereditando le variabili di ambiente dalla tua shell di login. In particolare, non erediterà le variabili di ambiente dell'agente ssh.
Prova questa soluzione:
-
Crea questo script e inseriscilo in $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
-
Aggiungilo allo script di avvio della shell. Ad esempio se usi bash:
echo '. ~/.ssh/saveagent' >> ~/.bash_login
-
Dopo aver collegato il tmux, eseguire
. $HOME/.ssh/latestagent