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.

NiLL
źródło
Wypróbuj ten sftp: winscp.net/eng/download.php
Nishchit Dhanani
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 [email protected]:Downloads/filename.sql ~/Desktop
kaxi1993

Odpowiedzi:

1166

W swoim terminalu wpisz:

scp [email protected]: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 [email protected]:/remote/dir/foobar.txt /local/dir

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

Josh1billion
źródło
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 [email protected]:i foobar.txtw powyższym przykładzie.
Eugene S
13
@NiLL scp -i xxx.pem twoja_nazwa_uż[email protected]: 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   
raj_gt1
źródło
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'
William Pursell
źródło
2
winscp.net/eng/download.php
Nishchit Dhanani
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.

J-16 SDiZ
źródło
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