Je me retrouve régulièrement à vouloir copier un fichier d'une session de terminal distant sur ma machine locale. Habituellement, je me déconnecte de la session distante et appelle un transfert scp du local pour copier le fichier du distant au local. Mais cela semble un peu long. Je voudrais transférer le fichier tout en étant connecté à la télécommande via SSH pour gagner du temps. Ma machine locale est connectée à Internet à partir d'une plage IP dynamique, je ne sais donc pas trop comment me connecter à distance. Mais sûrement, comme la session distante provient de mon ordinateur portable, il doit y avoir un raccourci dans scp pour revenir à mon ordinateur portable ...
~C
évasion. Tapez simplement<Enter>~C-R 12345:localhost:22<Enter>
, et vous avez votre tunnel sans quitter votre session SSH déjà établie.Essayez ce qui suit dans la ligne de commande de la machine distante, vous devrez peut-être activer la redirection de port sur votre routeur.
Source: scpez facilement un fichier vers l'hôte à partir duquel vous vous connectez (commandlinefu.com)
la source
${SSH_CLIENT%% *}
affichez l'IP de votre machine locale. Donc, toute la commande ouvre une session scp de la machine distante à votre machine locale pour le transfert de fichiers. Cela ne peut être fait que si vous pouvez SSH sur votre ordinateur local à partir de l'ordinateur distant.export ME="${SSH_CLIENT%% *}"
dans votre fichier shell rc. Vous pouvez ensuite simplement utiliserscp <file> $ME:<local path>
Peut-être zssh ?
Il utilise les vénérables implémentations rz, sz du transfert de fichiers zmodem.
la source
J'ai voté pour cette question, c'est quelque chose que j'aimerais aussi réaliser facilement .
Voici la réponse connexe: Comment puis-je SCP d'une machine distante à une machine locale lorsque je suis en dehors de mon réseau domestique?
la source
Une solution serait de suspendre la session ssh sur la machine locale, d'effectuer la copie sur la machine locale, puis de reprendre votre session ssh là où vous l'aviez interrompue.
Par exemple, supposons que je suis connecté à myuser @ remote et que je souhaite copier le fichier lol.txt sur mon ordinateur local. Je veux d'abord suspendre ssh sur ma machine locale. Normalement, vous utiliseriez Ctrl- Zpour suspendre, mais cela ne fonctionnera pas dans ssh car il sera envoyé au shell distant. Au lieu de cela, vous devez utiliser la séquence d'échappement ssh Enter~. Donc, pour suspendre la presse ssh Enter~ Ctrl- Z. Vous pouvez maintenant exécuter des commandes sur votre ordinateur local et pouvez le faire
user@localmachine:~$ scp user@remote:/path-to-file/lol.txt /dest-path/lol.txt
pour copier le fichier, puis revenir à ssh exactement où vous l'avez laissé
user@localmachine:~$ fg
la source
Si vous voulez une solution plus simple, ouvrez simplement un compte dropbox, allez sur la machine distante et faites wget (version modifiée d' ici ):
wget --no-check-certificate https://www.dropbox.com/s/2123jshf/ABC.pdf?dl=1 -O abc.pdf
la source