Często mam ochotę skopiować plik ze zdalnej sesji terminala na mój komputer lokalny. Zwykle wylogowuję się ze zdalnej sesji i dzwonię do przelewu scp z lokalnego, aby skopiować plik ze zdalnego do lokalnego. Ale wydaje się to trochę zbyt długie. Chciałbym przenieść plik, gdy jestem zalogowany do pilota przez SSH, aby zaoszczędzić czas. Moja lokalna maszyna jest podłączona do Internetu z dynamicznego zakresu adresów IP, więc nigdy nie jestem pewien, jak połączyć się z nią zdalnie. Ale z pewnością, ponieważ zdalna sesja pochodzi z mojego laptopa, musi istnieć skrót w scp, aby wrócić do mojego laptopa ... prawda?
~C
wyjściem. Po prostu wpisz<Enter>~C-R 12345:localhost:22<Enter>
, a będziesz mieć swój tunel bez opuszczania już ustanowionej sesji SSH.Spróbuj wykonać następujące czynności w wierszu polecenia na komputerze zdalnym, może być konieczne włączenie przekierowania portów na routerze.
Źródło: łatwo zeskanuj plik z powrotem do hosta, z którego się łączysz (commandlinefu.com)
źródło
${SSH_CLIENT%% *}
wypisz adres IP swojego komputera lokalnego. Zatem całe polecenie otwiera sesję scp ze zdalnego komputera na komputer lokalny w celu przesłania plików. Można to zrobić tylko wtedy, gdy możesz SSH na komputerze lokalnym ze zdalnego komputera.export ME="${SSH_CLIENT%% *}"
do pliku rc powłoki. Możesz wtedy po prostu użyćscp <file> $ME:<local path>
Może zssh ?
Wykorzystuje czcigodne implementacje rz, sz transferu plików zmodem.
źródło
Przegłosowałem to pytanie, ale chciałbym to również łatwo osiągnąć .
Oto odpowiednia odpowiedź: w jaki sposób mogę SCP ze zdalnego komputera na lokalny, gdy jestem poza moją siecią domową?
źródło
Jednym z rozwiązań byłoby zawieszenie sesji ssh na komputerze lokalnym, wykonanie kopii na komputerze lokalnym, a następnie wznowienie sesji ssh w miejscu, w którym zostało przerwane.
Załóżmy na przykład, że mam połączenie z myuser @ remote i chcę skopiować plik lol.txt na mój komputer lokalny. Najpierw chcę zawiesić ssh na mojej lokalnej maszynie. Zwykle użyłbyś Ctrl- Zdo zawieszenia, ale to nie zadziała w ssh, ponieważ zostanie wysłany do zdalnej powłoki. Zamiast tego musisz użyć sekwencji ucieczki ssh Enter~. Aby zawiesić ssh naciśnij Enter~ Ctrl- Z. Teraz możesz uruchamiać polecenia na komputerze lokalnym i możesz to zrobić
user@localmachine:~$ scp user@remote:/path-to-file/lol.txt /dest-path/lol.txt
aby skopiować plik, a następnie powrócić do ssh dokładnie tam, gdzie go zostawiłeś
user@localmachine:~$ fg
źródło
Jeśli chcesz prostszego rozwiązania, po prostu otwórz konto Dropbox, przejdź do zdalnego komputera i uruchom wget (zmodyfikowana wersja tutaj ):
wget --no-check-certificate https://www.dropbox.com/s/2123jshf/ABC.pdf?dl=1 -O abc.pdf
źródło