Scp d'un serveur à un autre serveur?

34

J'essaie de copier des fichiers d'un serveur directement sur un autre en contournant mon ordinateur local.

J'ai fait

scp -r [email protected]:~/data/* [email protected]:~/data/
Password: 
Host key verification failed.
lost connection

Est-ce seulement possible? Comment puis-je résoudre ce problème?

Sibbs Gambling
la source
Pouvez-vous publier le résultat de la commande suivante - scp -r -v [email protected]: ~ / data / * [email protected]: ~ / data /
pragmatique

Réponses:

55

Quelque chose que j'utilise assez souvent quand il n'y a pas de connexion possible entre les deux serveurs

scp -3 user@server1:/path/to/file user@server2:/path/to/file

la source

-3 Les copies entre deux hôtes distants sont transférées via l'hôte local. Sans cette option, les données sont copiées directement entre les deux hôtes distants. Notez que cette option désactive le compteur de progression.

En supposant que vous ayez une bonne connexion aux deux, ce n’est pas trop lent.

exussum
la source
En outre, si vous devez utiliser des ports spéciaux sur les deux serveurs: superuser.com/questions/686394/…
Pit
N'oubliez pas d'ajouter l' -rindicateur si vous copiez un répertoire.
Taylor Edmiston
16

Oui cela est possible, mais seulement si server1.compeut atteindre server2.comen utilisant ce nom. Sinon, vous recevrez probablement un message:ssh: connect to host server2 port 22: Connection refused

La manpage de scpindique clairement qu'elle copie entre les hôtes d'un réseau et que:

Les copies entre deux hôtes distants sont également autorisées.

Ce que vous devriez faire (une fois) est d' sshaller [email protected]de là-bas sshà [email protected]. Répondez à la question d'authenticité que vous obtiendrez avec oui, pour vous débarrasser du message de vérification de la clé de l'hôte tout en effectuant lascp

Vous devrez peut-être activer l'agent de transfert avec:

scp -o "ForwardAgent yes" -r [email protected]:~/data/* [email protected]:~/data/

Mais assurez-vous de bien comprendre le danger que cela représente ( man ssh_config)

Anthon
la source
Je viens d' sshéditer de server1.comà server2.com, et j'ai en effet répondu à la question et réussi. Ensuite, je retourne sur mon ordinateur local, je le referai et récupère le message.server2.com invite du mot de passe de. Mais il échoue là-bas avec:Permission denied (publickey,keyboard-interactive). lost connection
Sibbs Gambling
1
@SibbsGambling Je pense que cela dépend du transfert de votre clé privée. Pouvez-vous vous connecter aux deux serveurs sans fournir de mot de passe? Pourriez-vous vous connecter de server1à server2sans fournir de mot de passe? Vous devrez peut-être définir "ForwardAgent yes".
Anthon
1

Tout d’abord, vous devez vérifier si vous êtes capable de ssh sur server2 sans erreur, si vous obtenez la même erreur, ouvrez le fichier, ~/.ssh/known_hostspuis recherchez la clé server2 et supprimez-la.

Ensuite, vérifiez si vous pouvez envoyer une requête ping au serveur par le nom d'hôte.

Sinon, éditez le fichier hôte du serveur comme indiqué ci-dessous

 #vi /etc/hosts  
 server1 192.186.x.x  
 server2 192.186.x.xx   
 :wq   ---> to save  

Une fois que vous avez terminé avec ce cd, localisez le fichier que vous voulez copier sur le serveur2.

le scp file_name user@server2:/path_to_the_directory ---> vous pouvez utiliser l'adresse IP au lieu du nom d'hôte que vous pouvez mentionner -Rpour copier un répertoire.

Bâtard
la source
0

Vérifier si ~/.ssh/known_hosts avez des enregistrements appropriés pour les deux serveurs

Vérifiez également si le serveur1 a un ~/.ssh/known_hostsenregistrement approprié pour le serveur2

Romeo Ninov
la source
-2

Vous pouvez utiliser la commande ci-dessous pour copier un fichier d'un serveur à un autre:

scp source_user@source_remote_host:/usr/bin/mysql_backup.sh \
         target_user@target_remote_host:/var/tmp/
karthik m
la source