Une seule ligne? Pas du premier coup. Vous devez d'abord établir un proxy et vous ne pouvez pas le faire avec scp seul.
Lorsque vous le faites manuellement, j'ouvre une session screen pour mon tunnel:
screen -S tunnel
Screen est utilisé pour maintenir le tunnel en cours dans un shell en arrière-plan. Utilisez la technique de votre choix pour garder le tunnel ouvert en arrière-plan (la réponse de @weeheavy est probablement la plus simple). Une fois dans la session screen, je démarre mon tunnel de la manière suivante
ssh -L 2222:cible.machine:22 [utilisateur@]proxy.machine
Pour décomposer cela, cela signifie essentiellement "Sur ma machine locale, ouvrez le port 2222 et toute connexion arrivant sur localhost: 2222 est proxifiée via proxy.machine jusqu'à cible.machine: 22"
Une fois que vous avez établi la connexion ssh et le tunnel, détachez-vous de la session screen avec "C-a d". Pour revenir à cette session screen, tapez screen -raAd tunnel
Une fois de retour dans votre shell d'origine, votre commande scp ressemblera à
scp -P 2222 localhost: votre/fichier/sur/cible.machine chemin/local
N'oubliez pas que le port localhost 2222 est en réalité juste un tunnel allant vers la machine cible.