SCP d'un serveur externe à un autre


12

J'essaie d'utiliser SCP sur mon serveur local pour copier un fichier d'un serveur distant vers un autre serveur distant (les deux serveurs distants utilisent un port personnalisé (xxxx)

J'essaie:

scp -r -P xxxx root@xxx.xxx.xxx.111:/home/myimages/images.tar.gz root@xxx.xxx.xxx.222:/home/myimages/images.tar.gz

Mais j'obtiens l'erreur suivante:

ssh: connect to host xxx.xxx.xxx.222 port 22: Connection timed out

Aucune suggestion?


Je suppose que vous pouvez passer ssh à xxx.xxx.xxx.222 normalement?

Ouais, je peux ssh sur tous les serveurs de tous les serveurs
Lizard

Réponses:


17

avez-vous vérifié que l'authentification directe fonctionne du premier hôte distant au second?

scp user@host:/file user@otherhost:/otherfile est un raccourci pour

ssh user@host scp /file user@otherhost:/otherfile

ce qui me fait penser:

ssh -p XXX user@host scp -P XXX /file user@otherhost:/otherfile pourrait fonctionner.


1
Oui, j'ai envoyé à tous les serveurs de chaque serveur :(
Lizard

Bon point, juste parce que vous pouvez voir xxx.222 ne signifie pas que xxx.111 peut.

C'est un bon point, mais je l'ai déjà vérifié, d'autres suggestions?
Lézard

Le ssh puis le scp fait ce dont j'ai besoin.
Lézard

3

Il semble que scpne réalise pas que le port spécial doit également être utilisé sur le deuxième serveur. Vous pouvez essayer d'appeler explicitement sshpour démarrer le scptransfert à distance :

ssh -P xxxx user@host scp -P xxxx /file user@otherhost:/otherfile

3

Définissez les serveurs dans votre .ssh/config file, par exemple:

Host foobar
User youruser
Port 2222
Hostname the.real.hostname

Host foobar2
User youruser
Port 2222
Hostname the2.real.hostname

Vous pouvez alors simplement faire:

scp foobar:file foobar2:

et il utilisera les ports personnalisés définis.


3

J'ai des serveurs distants qui ne peuvent pas se voir, mais mon serveur local peut voir les deux. Le démon ssh des serveurs distants écoute dans différents ports ssh non standard. Voici comment je fais cela:

ssh -p 111 userA@remote1 'cat myfile' | ssh -p 222 userB@remote2 'cat - > myfile'

La deuxième commande ssh demande d'abord le mot de passe, puis remote1 demande le mot de passe pour l'utilisateurA. Vous pouvez l'avoir automatisé si vous avez configuré des clés autorisées ssh, ce qui n'est pas le cas dans mon environnement.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.