É possível gerar um ssh-agent para uma nova sessão do tmux?

3

Eu já vi vários hacks para restabelecer contato com o agente SSH de uma sessão GUI de dentro de sessões tmux (e de tela). Eu estou querendo saber se é possível separar da GUI e gerar um ssh-agent puramente para uso dentro de uma determinada sessão do tmux? O próprio agente teria que "usar" uma das janelas do tmux para evitar ser morto ou é possível gerar uma em segundo plano que persista enquanto a sessão estiver ativa?

    
por stsquad 26.09.2012 / 13:54

3 respostas

3

OK, eu fiz mais algumas pesquisas e seria possível conectar facilmente ao SSH_AGENT quando o terminal estiver conectado. O tmux já fornece a configuração de chave "update-environment", no entanto a peça que falta é que os shells existentes não são atualizados magicamente. No entanto, o tmux rastreia as variáveis de ambiente atualizadas para que o script de atualização seja muito menos hacky que as telas:


# 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}
}

Deste envie

    
por 26.09.2012 / 15:40
2

Eu tive que modificar a resposta do @stsquad. Estava falhando para mim porque o comando export não pôde definir a variável SSH_CONNECTION .

Eu tive que envolver o valor de SSH_CONNECTION entre aspas.

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}"
}
    
por 26.03.2015 / 22:09
0

Outra opção que encontrei recentemente é o utilitário keychain de Daniel Robbins, que oferece uma maneira simples de se reconectar e ter um usuário / host wide agent em vez de apenas uma sessão ampla.

    
por 10.05.2013 / 19:15