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:
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
? 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 /