web-dev-qa-db-fra.com

Scp d'un serveur à un autre serveur?

J'essaie de copier des fichiers d'un serveur directement à 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 le réparer?

35
Sibbs Gambling

Quelque chose que j'utilise assez souvent lorsqu'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.

59
exussum

Oui, cela est possible, mais uniquement si server1.com peut atteindre server2.com en utilisant ce nom. Sinon, vous obtiendrez probablement un message: ssh: connect to Host server2 port 22: Connection refused

La page man pour scp indique 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 devez faire (une fois) est ssh à [email protected] et de là ssh à [email protected]. Répondez à la question d'authenticité que vous obtiendrez par oui, pour vous débarrasser du message de vérification de la clé d'hôte tout en faisant scp

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

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

Mais assurez-vous que vous vous rendez compte du danger que cela (man ssh_config)

16
Anthon

Tout d'abord, vous devez vérifier si vous êtes capable de passer à ssh vers server2 sans aucune erreur, si vous obtenez la même erreur, veuillez ouvrir le fichier ~/.ssh/known_hosts et recherchez la clé server2 et supprimez-la.

Vérifiez ensuite si vous pouvez envoyer une requête ping au serveur par le nom d'hôte

Sinon, veuillez modifier 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 à l'emplacement du fichier que vous souhaitez copier sur le serveur2

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

1
Mongrel

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

Vérifiez également si le serveur1 dispose de ~/.ssh/known_hosts enregistrement pour server2

0
Romeo Ninov