Jak pobrać plik z serwera za pomocą SSH? [Zamknięte]


749

Muszę pobrać plik z serwera na pulpit. (UBUNTU 10.04) Nie mam dostępu do serwera, po prostu ssh.

Jeśli to pomoże, moim systemem operacyjnym jest Mac OS X i iTerm 2 jako terminal.



51
dlaczego to jest nie na temat?
jsmedmar

4
ponieważ nie jest to pytanie programistyczne
Czarny

26
Zamiast tego @EdwardBlack mógł zostać migrowany do unix.stackexchange
gldraphael

3
To zadziałało dla mniesudo scp -i ~/.ssh/id_rsa username@remotehost.io:Downloads/filename.sql ~/Desktop
kaxi1993

Odpowiedzi:


1166

W swoim terminalu wpisz:

scp your_username@remotehost.edu:foobar.txt /local/dir

zastępując odpowiednio nazwę użytkownika, host, zdalną nazwę pliku i katalog lokalny.

Jeśli chcesz uzyskać dostęp do EC2 (lub innej usługi wymagającej uwierzytelnienia za pomocą klucza prywatnego), skorzystaj z -iopcji:

scp -i key_file.pem your_username@remotehost.edu:/remote/dir/foobar.txt /local/dir

Od: http://www.hypexr.org/linux_scp_help.php


3
Nie znam Amazon EC2, ale jeśli masz dostęp SSH do swojego serwera, powinien on działać.
Josh1billion

3
Myślę, że to brakuje /między your_username@remotehost.edu:i foobar.txtw powyższym przykładzie.
Eugene S

13
@NiLL scp -i xxx.pem twoja_nazwa_użytkownika@remotehost.edu: foobar.txt / some / local / directory
Helin Wang

3
@Alex dodaj opcję -r.
SgtPooki

10
Przydatne informacje - nie zdawałem sobie sprawy, że uruchamiasz to z lokalnego komputera, a nie z miejsca, z którego chcesz pobrać. więc, jak pytał Horak, ~ / zrzuci go do twojego katalogu użytkownika jak / Users / admin / - byłem zalogowany zdalnie ssh i zastanawiałem się, dlaczego to nie działa.
Kai Qing,

322

Możesz to zrobić za pomocą scppolecenia. scpużywa protokołu SSH do kopiowania plików w całym systemie poprzez rozszerzenie składni cp.

Skopiuj coś z innego systemu do tego systemu:

scp username@hostname:/path/to/remote/file /path/to/local/file

Skopiuj coś z tego systemu do innego systemu:

scp /path/to/local/file username@hostname:/path/to/remote/file          

Skopiuj coś z jakiegoś systemu do innego systemu:

scp username1@hostname1:/path/to/file username2@hostname2:/path/to/other/file   

5
Podoba mi się, jak gdyby ktoś chciał uzyskać pytanie OP i nie przeczytał w pełni twojej odpowiedzi, może przypadkowo i bez zastanowienia po prostu uruchom pierwsze polecenie i ewentualnie zastąpić plik zdalny, który próbują pobrać, plikiem lokalnym, który wcześniej dotknął. ups.
Mr Purple

Dlaczego są dostępne? Ktoś może zrobić „rm -rf /” bez zastanowienia, ale to nie zmniejsza użyteczności polecenia rm?
raj_gt1,

1
Czy myślisz, że od odpowiedzi na pytanie „jak zaktualizować system Linux?” dobrym pomysłem byłoby też polecenie „rm -rf /”?
Mr Purple

2
@MrPurple - Dzięki za ostrzeżenie, prawie dokładnie to zrobiłem. Zredagowałem pytanie, aby najpierw pokazać najbardziej odpowiednie polecenie
Sphinxxx

96

scp jest z pewnością właściwą drogą, ale dla kompletności możesz również zrobić:

$ ssh host 'cat /path/on/remote' > /path/on/local

lub

$ cat /path/on/local | ssh host 'cat > /path/on/remote'

Uwaga: jest to UUOC, ale < /path/on/local ssh host 'cat > /path'może powodować niepotrzebne zamieszanie.

I do proxy między dwoma hostami:

$ ssh host1 'cat /path/on/host1' | ssh host2 'cat > /path/on/host2'


5
Czy ktoś zrobił test prędkości dla różnych metod? Byłbym ciekawy, który z nich jest najszybszy. Przypadek użycia: Mam ogromny plik do pobrania.
starbeamrainbowlabs

To faktycznie działa z .ssh / config, podczas gdy scp nie wydaje się podążać za konfiguracją ssh

13

Jeśli serwer SSH obsługuje podsystem SFTP (jest to część SSH i niezwiązana z FTP), użyj sftp. Jeśli nie, spróbuj scp.

CyberDuck obsługuje je wszystkie.


2
Pobierz z ich strony internetowej, cyberduck.ch/Cyberduck-4.2.1.zip
J-16 SDiZ

Wygląda na to, że od tego czasu zmienili oprogramowanie na wolne, ale opcjonalnie możesz przekazać dowolną kwotę, a to pozbędzie się „monitu o darowiznę” z poziomu programu.
Mike

12
To nie odpowiada na pytanie.
edwinj

1
Tak, wystarczy pobrać za pomocą SFTP Cyberducka
Miguel Stevens,

FileZilla działa dla mnie świetnie i jest darmowy i open source (i stworzony przez tych samych facetów, którzy tworzą Firefoksa). podobnie jak Cygwin.
hanshenrik
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.