Comment puis-je SCP un fichier via un serveur intermédiaire?

J'utilise Ccygwin sur WinXP (avec la coque bash). Je souhaite SCP un fichier de mon localhost à une machine distante – host2. Cependant, je ne peux que SSH pour une machine intermédiaire – host1, puis de là SSH à host2. (Notez que je ne peux pas accéder à host2 de mon hôte local).

Je pensais que le tunneling était ma réponse, mais quand j'essaie de mettre en place un tunnel

ssh -L 9999:localhost:9998 dalvarado@host1 'ssh -L 9998:localhost:1234 -N dalvarado@host2' 

Mais après avoir tapé cette commande et frappé, le système se bloque. Quel est le bon moyen de configurer un tunnel puis un fichier SCP après?

Merci, –

Cela a déjà été mieux répondu ici .

Pour résumer: mettez le suivant dans ~/.ssh/config

 Host target.machine User targetuser HostName target.machine ProxyCommand ssh [email protected] nc %h %p 2> /dev/null 

Et ensuite simplement scp to target.machine à tout moment que vous voulez proxy via proxy.machine!

Fonctionne également pour ssh , vous économiserez également le temps ssh-ing sur la machine cible.

Le crédit devrait aller à user24925 qui a répondu à cela en 2011.

Pour configurer un tunnel SSH, utilisez le format suivant:

 ssh -L 9999:host2:22 user@host1 

Cette commande se connecte à host1 tant que port user et tunnel 9999 sur l'ordinateur qui émet la commande au port 22 sur host2 . -N est facultatif, ou vous pouvez utiliser quelque chose comme le top ou watch pour garder la session en vie si nécessaire.

Ensuite, il suffit de scp à host2 sur localhost: 9999.

Vous pouvez d'abord scp le fichier à host1, comme ceci:

 scp file dalvarado@host1:. 

Ensuite, faites ceci pour l'amener à host2:

 ssh -t dalvarado@host1 'scp file dalvarado@host2:.' 

L'option -t de ssh oblige à allouer un pseudo-terminal, ce qui peut faciliter l'utilisation de scp sur host1 pour vous demander une mot de passe / mot de passe. Si vous utilisez ssh-agent en cours d'exécution et configuré partout, vous ne devriez pas vous inscrire pour une mot de passe ou un mot de passe.

J'offre cette alternative, car si vous utilisiez un tunnel, vous auriez encore besoin de deux commandes: l'une pour configurer le tunnel et l'autre pour copier le fichier. Cela semble plus simple.