La connection ssh sans mot de passe ne fonctionne pas avec proxycommand

J'ai 2 servers. Je peux me connecter au server B uniquement en utilisant le server A. Dans mon file ~/.ssh/config :

 Host serverB Hostname serverb User root ForwardAgent yes Port 22 ProxyCommand ssh user@serverA nc %h %p 

Lorsque je me connecte à serverA et tapez ssh root@serverB Il se connecte sans requestr de mot de passe, mais quand je tape ssh ServerB sur ma machine locale, il request le mot de passe de ServerB. Pourquoi?

ProxyCommand fournit juste un tunnel pour ProxyCommand la connection ssh externe.

Lorsque vous utilisez ssh serverB partir de ssh serverB , vous utilisez probablement une key de votre count sur serverA .

Lorsque vous faites ssh serverB partir de votre machine client, le fait que vous vous connectez via cette command nc démarrée sur serverA ne vous donnera pas magiquement access aux keys de serverA.

Vous devrez append les keys du serverA à votre agent client.

Par exemple:

 ssh-add <(ssh serverA 'cat .ssh/id_rsa') 

Pour append la key dans .ssh/id_rsa sur serverA (syntaxe ksh93 / bash / zsh ci-dessus).

Quelques choses:

  1. Dans quelle mesure êtes-vous en train de requestr le mot de passe de votre server? Il pourrait requestr le serverA
  2. Vous n'avez pas besoin de transmettre votre agent – vous serez directement en contact avec le serverB dans ce cas – il ne sera pas serverA qui est handshaking avec le serverB
  3. Vous n'avez pas besoin d'append la key de serverA à votre client – encore une fois, vous allez parler directement à serverB – juste à travers le serverA – donc ne voient pas le point en faisant cela – et c'est aussi un danger pour la security.
  4. Qu'est-ce qui se passe quand vous ssh serverA – request-t-il un mot de passe? Si c'est le cas – avez-vous envisagé d'installer votre key publique sur les authorized_hosts du serverA? ssh-copy-id serverA ?
  5. exécuter avec -vvv et pastebin / filebin / post sortie

Je n'ai pas de réponse complète, juste quelques points à vérifier. Vérifiez les permissions des directorys de base de l'user Unix sur les deux zones. Vérifiez les permissions de directory à $ HOME, à $ HOME / .ssh et tous les files sous .ssh dans les deux boîtes. Vérifiez les versions de ssh. Comparez les files de configuration ssh pour les deux boîtes aussi.

Mais cela m'est arrivé plusieurs fois dans le passé. Les deux choses qui l'ont causé?
1. permissions incorrectes dans les directorys. 2. Une mauvaise key de server dans $ HOME / .ssh /