Manter o encaminhamento de agentes no sudo

3

Eu quero ser capaz de se conectar a um servidor, iniciar um shell sudo e usar o encaminhamento de agente para se conectar a outro servidor (para usar o SCP para copiar arquivos para uma área protegida). Mas:

ubuntu@tunnelator:/var/www$ ssh -p 10022 stevebennett@localhost
Last login: Fri Apr  5 10:54:03 2013 from localhost
~ exit
Connection to localhost closed.

ubuntu@tunnelator:/var/www$ sudo ssh -p 10022 stevebennett@localhost
Password:

Presumivelmente, iniciar o shell sudo está eliminando o encaminhamento do agente. A diferença é esta:

debug1: Offering RSA public key: id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: Authentication succeeded (publickey).

versus:

debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/id_rsa
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Trying private key: /root/.ssh/id_ecdsa
debug1: Next authentication method: keyboard-interactive

Existe uma maneira de fazer isso funcionar? (A configuração é mais ou menos como descrito aqui: link )

    
por Steve Bennett 05.04.2013 / 02:02

1 resposta

3

Graças à sugestão do user157963, isso é fácil:

sudo -E ssh -p 10022 stevebennett@localhost

Ou, para ser um pouco mais seletivo, você pode fazer isso:

sudo su -l -c "export SSH_AUTH_SOCK=$SSH_AUTH_SOCK; ssh -p 10022 stevebennett@localhost"

(Note que isso só funciona quando se está usando o usuário root - ele precisa ser capaz de ler o arquivo de soquete original).

Eu pensei erroneamente que a variável de ambiente $ SSH_AUTH_SOCK já estava sendo preservada. Dica: o seguinte comando não diz nada de útil:)

sudo echo $SSH_AUTH_SOCK

Considerando que isso acontece:

sudo bash -c 'echo $SSH_AUTH_SOCK'
    
por 05.04.2013 / 07:39