souvent je dois télécharger un fichier qui n'est pas directement accessible via la première connexion SSH. Par exemple, je suis sur une machine Windows et je souhaite accéder à une autre machine accessible uniquement depuis le réseau local. Cela signifie que je dois d'abord me connecter à une machine intermédiaire et SSH à la suivante.
Il serait facile d'utiliser pscp pour obtenir le fichier, s'il était disponible pour la première machine. Le transfert de port SSH peut-il être utilisé dans ce scénario ?
Réponse acceptée :
Oui, le transfert de port SSH peut être utilisé dans ce cas, mais vous pouvez également recevoir des avertissements concernant des clés d'hôte non valides ou incorrectes lorsque vous tentez cela. Certains clients SSH comme OpenSSH suivent les clés d'hôte SSH par domaine ou IP uniquement et n'incluent pas le numéro de port. PuTTY semble enregistrer le numéro de port avec la clé d'hôte et ne devrait pas souffrir de ce problème tant que vous êtes cohérent avec les numéros de port que vous utilisez pour chaque hôte. Je recommanderais d'ajouter les transferts de port à une session enregistrée dans PuTTY. Vous pouvez également enregistrer les sessions supplémentaires pour les différents hôtes distants en tant que sessions enregistrées et les utiliser avec pscp/psftp. Vous pouvez commencer avec n'importe quel port de numéro élevé pour le transfert, tel que 2220, puis augmenter de un à partir de là pour chaque hôte que vous devez transférer via un hôte intermédiaire. Ajouter à la session enregistrée pour intermediate
transfert de port local comme le port 2220
et destination remote1:22
et port 2221
avec destination remote2:22
pour les hôtes distants remote1
et remote2
Créez ensuite des sessions pour remote1
avec destination localhost
et port SSH 2220
et une session pour remote2
avec destination localhost
et port SSH 2221
. Pour utiliser des sessions avec pcsp/psftp, utilisez @session-name
pour l'hôte.
Le problème se produit lorsque vous avez associé d'une manière ou d'une autre une clé d'hôte SSH à localhost et que vous essayez de vous connecter à un port local qui est transféré vers un autre ordinateur. Avec OpenSSH, j'ai résolu ce problème en utilisant HostKeyAlias
. J'ai ajouté des entrées à mon ~/.ssh/config
comme ceci :
Host intermediate
HostName intermediate.example.org
LocalForward 2220 remote1.example.org:22
LocalForward 2222 remote2.example.org:22
Host remote1
HostName localhost
Port 2220
HostKeyAlias remote1.example.org
Host remote2
HostName localhost
Port 2221
HostKeyAlias remote2.example.org
Ma solution préférée, cependant, était lorsque j'ai déployé IPv6 sur mon réseau domestique et professionnel et que je n'avais plus à me soucier de me connecter d'abord à un serveur intermédiaire pour arriver à ma destination finale.
Connexe :Linux – Y a-t-il un risque sérieux si Mint 17 pense qu'il s'agit d'Ubuntu ?