Vous pouvez maintenant le faire en une seule ligne, sans avoir besoin de nc
n'importe où:
scp -o "ProxyCommand ssh pcreds@proxy.machine -W %h:%p" tcreds@target.machine:file .
Explication
pcreds
et tcreds
représentent vos identifiants de proxy et de cible si nécessaire (nom d'utilisateur
, nom d'utilisateur:mot de passe
, etc.).
Cela est possible grâce à une capacité intégrée similaire à netcat, supprimant le besoin de nc
sur l'hôte intermédiaire. En utilisant ssh -W hôte:port
, un tunnel vers l'hôte et au port spécifié est configuré et connecté à stdin/stdout, puis scp
est exécuté sur le tunnel.
Les %h
et %p
dans le ProxyCommand
sont remplacés par l'hôte et le port cible à partir de la commande scp
externe, pour vous éviter d'avoir à les répéter.
Pour encore plus de commodité, vous pouvez configurer le proxy dans votre configuration ssh:
Host target.machine
ProxyCommand ssh pcreds@proxy.machine -W %h:%p
et ensuite vous pouvez simplement faire
scp tcreds@target.machine:file .
* depuis OpenSSH 5.4 - sorti en Mars 2010