Comment get un count racine Ubuntu pour transférer les keys ssh en tant que machine d'apathement

MISE À JOUR: le tout décrit ci-dessous fonctionne bien pour les counts non-racine sur la machine distante.

C'est-à-dire que cela fonctionne:

anderson@client -> nonroot@remote -> anderson's-ssh-key@github.com 

Cela ne fonctionne pas cependant:

 anderson@client -> root@remote -> anderson's-ssh-key@github.com 

Donc, la question est en fait, comment puis-je faire fonctionner le transfert d'agent ssh lorsque la machine au milieu est une racine?


La machine locale (OSX) est activée dans le file ~ / .ssh / config:

 Host remotehost ForwardAgent yes 

La machine locale ne remplace pas ce paramètre dans / etc / ssh / ssh_config.

 Host * # ForwardAgent no 

La machine locale exécute ssh-agent:

 anderson$ ssh-agent SSH_AUTH_SOCK=/tmp/ssh-L0iFZ891Gv/agent.75083; export SSH_AUTH_SOCK; SSH_AGENT_PID=75084; export SSH_AGENT_PID; echo Agent pid 75084; 

ssh-add a été exécuté sur la key:

 anderson$ ssh-add -K ~/.ssh/id_rsa Passphrase updated in keychain: /Users/anderson/.ssh/id_rsa Identity added: /Users/anderson/.ssh/id_rsa (/Users/anderson/.ssh/id_rsa) 

$ SSH_AUTH_SOCK est là:

 anderson$ echo $SSH_AUTH_SOCK /tmp/launch-pg2gVc/Listeners 

La key ssh a été téléchargée sur GitHub et fonctionne:

 anderson$ ssh -T git@github.com Hi [elided]! You've successfully authenticated, but GitHub does not provide shell access. 

La machine à distance (Ubuntu 12.04LTS) possède la key publique ssh de la machine locale et fonctionne:

 anderson$ ssh root@remotehost [root@host1~]# 

La machine à distance a configuré AllowAgentForwarding:

 [root@host1~]# head /etc/ssh/sshd_config # Package generated configuration file # See the sshd_config(5) manpage for details AllowAgentForwarding yes 

Et voici où il va en forme de poire: SSH_AUTH_SOCK est nulle part sur la télécommand:

 [root@host1~]# echo $SSH_AUTH_SOCK **crickets** 

Et bien sûr, l'apathement des keys n'est nulle part aussi trouvé:

 [root@host1~]# ssh -T git@github.com Permission denied (publickey). 

Même le forcer comme cela ne fonctionne pas:

 anderson$ ssh -A root@remotehost 

Sortie de debugging:

 anderson$ ssh -vvv -A root@remotehost OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011 debug1: Reading configuration data /Users/anderson/.ssh/config debug1: Applying options for remotehost debug1: Applying options for * debug1: Reading configuration data /etc/ssh_config debug1: Applying options for * debug1: auto-mux: Trying existing master debug2: fd 3 setting O_NONBLOCK debug2: mux_client_hello_exchange: master version 4 debug3: mux_client_request_forwards: requesting forwardings: 0 local, 0 remote debug3: mux_client_request_session: entering debug3: mux_client_request_alive: entering debug3: mux_client_request_alive: done pid = 45287 debug3: mux_client_request_session: session request sent debug1: mux_client_request_session: master session id: 3 

Je manque donc quelque chose? Il me semble que j'ai couvert toutes les bases du debugging. Des idées sur quoi d'autre je peux vérifier?

J'avais un cas similaire, et la raison en était que l'emballage que j'utilisais était configurer l'option ControlPath , et SSH était également coincé à debug1: mux_client_request_session: master session id: 3 . La suppression d'un directory spécifié dans ControlPath a résolu le problème.