SCP établit une nouvelle connexion lors de la copie de fichiers, ce qui peut parfois rendre la tâche difficile si des pare-feu sont impliqués.
Par exemple,
Host-A & lt; - & gt; Host-B & lt; - & gt; Host-C & lt; - & gt; Hôte-D
- L'hôte-A est connecté à l'hôte B via SSH, puis l'hôte B est connecté sur l’hôte C via SSH, puis sur l’hôte D.
- L'hôte A ne peut pas se connecter à d'autres ordinateurs que l'hôte B, l'hôte B ne peut se connecter qu'à l'hôte A et l'hôte C, l'hôte C ne peut se connecter qu'à l'hôte B et l'hôte D, et le dernier hôte D peut le faire connectez-vous uniquement à l'hôte-c.
La commande (sur l'hôte D) scp / home / utilisateur / fichier Hôte-A: / home / utilisateur / nouveau fichier Je vais essayer de créer un nouveau tunnel SSH entre les deux, ce qui n’est pas ce que je veux. Je souhaite que la chaîne de tunnel SSH existante recopie le fichier par le biais des hôtes précédents jusqu'à ce qu'il atteigne l'hôte A.
Comment puis-je faire ceci?
linux
networking
ssh
scp
TrevorKS
la source
la source
Réponses:
Vous pouvez réutiliser des connexions existantes. Utilisez soit le commutateur de ligne de commande
-M
, ou option de configuration (client)ControlMaster
. Voir cette réponse sur StackOverflow pour plus de détails.Je l'ai utilisé abondamment, combiné avec
ControlPersist
fermer la connexion seulement après un délai. Cela évite le temps de connexion que vous auriez normalement engagé et améliore considérablement les performances lorsque vous fermez et reconnectez plusieurs fois (comme je le fais souvent lors d'une utilisation interactive).Notez que cela ne fonctionne pas très bien pour la connexion à certains hôtes - GitHub, par exemple - de sorte que vous devrez peut-être exclure explicitement certains hôtes de l'utilisation de cette option, si vous la configurez par défaut.
la source
ControlMaster
fichier pour la connexion et reconnectez-vous.