Il arrive qu'il soit impossible de copier un fichier via SSH d'un serveur à un autre. Cette situation se présente souvent lorsque pour des raisons de sécurité l'accès direct au serveur est impossible, il faut passer via un bastion.

Ce billet présente la manière de copier un fichier via SSH entre un serveur source et un serveur cible sans connexion directe.

source-cible.png

Se connecter au serveur bastion et lancer la commande ssh suivante

ssh login@source cat fichier | ssh login@cible "cat - > fichier"

Par exemple soit le fichier sauve.tgz présent sous /SAUVEGARDE du serveur SOURCE à recopier sur /SAUVEGARDE du serveur CIBLE avec un login erik.

ssh erik@SOURCE cat /SAUVEGARDE/sauve.tgz | ssh erik@CIBLE "cat - > /SAUVEGARDE/sauve.tgz"

Il est bien sur vital que les droits soient correctement mis en place. De plus grace au connexion par clé SSH la gestion du mot de passe est transparente.