Làm cách nào để tải xuống tệp từ máy chủ bằng SSH? [đóng cửa]


749

Tôi cần tải một tập tin từ máy chủ về máy tính để bàn của tôi. (UBUNTU 10.04) Tôi không có quyền truy cập web vào máy chủ, chỉ cần ssh.

Nếu nó giúp, hệ điều hành của tôi là Mac OS X và iTerm 2 như một thiết bị đầu cuối.


Hãy thử sftp này: woncp.net/eng/doad.php
Nishchit Dhanani

51
Tại sao điều này lạc đề?
jsmedmar

4
bởi vì nó không phải là một câu hỏi lập trình
Black

26
@EdwardBlack có thể đã được di chuyển sang unix.stackexchange thay vào đó
gldraphael

3
Điều này làm việc cho tôisudo scp -i ~/.ssh/id_rsa username@remotehost.io:Downloads/filename.sql ~/Desktop
kaxi1993

Câu trả lời:


1166

Trong thiết bị đầu cuối của bạn, gõ:

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

thay thế tên người dùng, máy chủ lưu trữ, tên tệp từ xa và thư mục cục bộ nếu thích hợp.

Nếu bạn muốn truy cập EC2 (hoặc dịch vụ khác yêu cầu xác thực bằng khóa riêng), hãy sử dụng -itùy chọn:

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

Từ: http://www.hypexr.org/linux_scp_help.php


3
Tôi không quen thuộc với Amazon EC2, nhưng nếu bạn có quyền truy cập SSH vào máy chủ của mình, nó sẽ hoạt động.
Josh1billion

3
Tôi nghĩ rằng có một thiếu /giữa your_username@remotehost.edu:foobar.txttrong ví dụ trên.
Eugene S

13
@NiLL scp -i xxx.pem your_username@remotehost.edu: foobar.txt / some / local / thư mục
Helin Wang

3
@Alex thêm tùy chọn -r.
SgtPooki

10
Thông tin hữu ích - Tôi không nhận ra bạn chạy cái này từ máy cục bộ của bạn chứ không phải từ nơi bạn muốn tải xuống. Vì vậy, như Horak đã hỏi, ~ / sẽ kết xuất nó trong thư mục người dùng của bạn như / Users / admin / - Tôi đã đăng nhập ssh từ xa và tự hỏi tại sao nó không hoạt động.
Kai Qing

322

Bạn có thể làm điều này với scplệnh. scpsử dụng giao thức SSH để sao chép các tệp trên toàn hệ thống bằng cách mở rộng cú pháp của cp.

Sao chép một cái gì đó từ hệ thống khác vào hệ thống này:

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

Sao chép một cái gì đó từ hệ thống này sang một số hệ thống khác:

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

Sao chép một cái gì đó từ một số hệ thống sang một số hệ thống khác:

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

5
Tôi thích làm thế nào nếu một người muốn đạt được câu hỏi OP và không đọc hết câu trả lời của bạn, họ có thể vô tình và không cần suy nghĩ chỉ cần chạy lệnh đầu tiên của bạn và có thể ghi đè lên tệp từ xa mà họ đang cố tải xuống bằng tệp cục bộ mà họ có thể đã chạm vào trước đó. Giáo sư.
Mr Purple

Tại sao có quyền truy cập cho? Ai đó có thể làm "rm -rf /" mà không cần suy nghĩ nhưng điều đó không làm giảm tiện ích của lệnh rm?
raj_gt1

1
Bạn có nghĩ rằng bắt đầu một câu trả lời cho "tôi nên nâng cấp linux như thế nào không?" với lệnh "rm -rf /" cũng sẽ là một ý tưởng tốt?
Mr Purple

2
@MrPurple - Cảm ơn bạn đã cảnh báo, tôi gần như đã làm chính xác điều đó. Tôi đã chỉnh sửa câu hỏi để hiển thị lệnh phù hợp nhất trước tiên
Sphinxxx

96

Scp chắc chắn là con đường để đi, nhưng để hoàn thiện bạn cũng có thể làm:

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

hoặc là

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

Lưu ý, đây là UUOC, nhưng < /path/on/local ssh host 'cat > /path'có thể gây nhầm lẫn không cần thiết.

Và để ủy quyền giữa hai máy chủ:

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


5
Có ai đã thực hiện một bài kiểm tra tốc độ trên các phương pháp khác nhau? Tôi tò mò muốn biết ai nhanh nhất. Trường hợp sử dụng: Tôi có một tệp lớn để tải xuống.
starbeamrainbowlabs

Điều này thực sự hoạt động với .ssh / config, trong khi scp dường như không tuân theo cấu hình ssh

13

Nếu máy chủ SSH hỗ trợ hệ thống con SFTP (đây là một phần của SSH và không liên quan đến FTP), hãy sử dụng sftp. Nếu không, hãy thử scp.

CyberDuck hỗ trợ tất cả chúng.


2
Tải xuống từ trang web của họ, cyberduck.ch/Cyberduck-4.2.1.zip
J-16 SDiZ

Có vẻ như họ đã thay đổi phần mềm miễn phí, nhưng bạn có thể tùy ý quyên góp bất kỳ số tiền nào và sẽ thoát khỏi "lời nhắc quyên góp" từ trong chương trình.
Mike

12
Điều này không trả lời câu hỏi.
edwinj

1
Nó thật dễ dàng để tải xuống bằng cách sử dụng SFTP của Cyberduck
Miguel Stevens

FileZilla hoạt động rất tốt đối với tôi, và là nguồn mở và miễn phí (và được tạo bởi cùng những người tạo ra Firefox). Cygwin cũng vậy.
hanshenrik
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.