Bagaimana cara mengunduh file dari server menggunakan SSH? [Tutup]

749

Saya perlu mengunduh file dari server ke desktop saya. (UBUNTU 10,04) Saya tidak memiliki akses web ke server, hanya ssh.

Jika ini membantu, OS saya adalah Mac OS X dan iTerm 2 sebagai terminal.

NiLL
sumber
Mencoba sftp ini: winscp.net/eng/download.php
Nishchit Dhanani
51
mengapa ini di luar topik?
jsmedmar
4
karena itu bukan pertanyaan pemrograman
Hitam
26
@EdwardBlack dapat dimigrasikan ke unix.stackexchange sebagai gantinya
gldraphael
3
Ini bekerja untuk sayasudo scp -i ~/.ssh/id_rsa [email protected]:Downloads/filename.sql ~/Desktop
kaxi1993

Jawaban:

1166

Di terminal Anda, ketik:

scp [email protected]:foobar.txt /local/dir

mengganti nama pengguna, host, nama file jarak jauh, dan direktori lokal yang sesuai.

Jika Anda ingin mengakses EC2 (atau layanan lain yang memerlukan otentikasi dengan kunci pribadi), gunakan -iopsi:

scp -i key_file.pem [email protected]:/remote/dir/foobar.txt /local/dir

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

Josh1billion
sumber
3
Saya tidak terbiasa dengan Amazon EC2, tetapi jika Anda memiliki akses SSH ke server Anda, itu seharusnya berfungsi.
Josh1billion
3
Saya pikir ada yang hilang /antara [email protected]:dan foobar.txtdalam contoh di atas.
Eugene S
13
@NiLL scp -i xxx.pem [email protected]: foobar.txt / some / local / directory
Helin Wang
3
@Alex menambahkan opsi -r.
SgtPooki
10
Info berguna - Saya tidak menyadari Anda menjalankan ini dari mesin lokal Anda, dan bukan dari tempat Anda ingin mengunduh. jadi seperti yang ditanyakan Horak, ~ / akan membuangnya di direktori pengguna Anda seperti / Users / admin / - Saya telah login ssh dari jarak jauh dan bertanya-tanya mengapa itu tidak berhasil.
Kai Qing
322

Anda dapat melakukan ini dengan scpperintah. scpmenggunakan protokol SSH untuk menyalin file di seluruh sistem dengan memperluas sintaks cp.

Salin sesuatu dari sistem lain ke sistem ini:

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

Salin sesuatu dari sistem ini ke beberapa sistem lain:

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

Salin sesuatu dari beberapa sistem ke sistem lain:

scp username1@hostname1:/path/to/file username2@hostname2:/path/to/other/file   
raj_gt1
sumber
5
Saya suka bagaimana jika seseorang ingin mencapai pertanyaan OP dan tidak sepenuhnya membaca jawaban Anda, mereka mungkin tanpa sengaja dan tanpa berpikir jalankan perintah pertama Anda dan mungkin menimpa file jarak jauh yang mereka coba unduh dengan file lokal yang mungkin mereka sentuh sebelumnya. oops.
Tuan Ungu
Mengapa ada akses untuk? Seseorang dapat melakukan "rm -rf /" tanpa berpikir tetapi itu tidak mengurangi utilitas perintah rm?
raj_gt1
1
Apakah Anda berpikir bahwa memulai jawaban untuk "bagaimana saya harus meningkatkan linux?" dengan perintah "rm -rf /" juga merupakan ide bagus?
Tuan Ungu
2
@ MrPurple - Terima kasih atas peringatannya, saya hampir melakukan hal itu. Saya telah mengedit pertanyaan untuk menunjukkan perintah yang paling relevan terlebih dahulu
Sphinxxx
96

scp tentu saja cara untuk pergi, tetapi untuk kelengkapan Anda juga dapat melakukan:

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

atau

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

Catatan, ini adalah UUOC, tetapi < /path/on/local ssh host 'cat > /path'dapat menyebabkan kebingungan yang tidak perlu.

Dan untuk proxy antara dua host:

$ ssh host1 'cat /path/on/host1' | ssh host2 'cat > /path/on/host2'
William Pursell
sumber
2
winscp.net/eng/download.php
Nishchit Dhanani
5
Adakah yang melakukan tes kecepatan pada metode yang berbeda? Saya ingin tahu yang mana yang tercepat. Gunakan case: Saya punya file besar untuk diunduh.
starbeamrainbowlabs
Ini sebenarnya bekerja dengan .ssh / config, sedangkan scp tampaknya tidak mengikuti konfigurasi ssh
13

Jika server SSH mendukung subsistem SFTP (ini adalah bagian dari SSH, dan tidak terkait dengan FTP), gunakan sftp. Jika tidak, coba scp.

CyberDuck mendukung semuanya.

J-16 SDiZ
sumber
2
Unduh dari situs web mereka, cyberduck.ch/Cyberduck-4.2.1.zip
J-16 SDiZ
Sepertinya mereka telah mengubah perangkat lunak menjadi gratis, tetapi Anda dapat secara opsional menyumbangkan jumlah berapa pun dan itu akan menghilangkan "donasi prompt" dari dalam program.
Mike
12
Ini tidak menjawab pertanyaan.
edwinj
1
Ya, cukup mudah untuk mengunduh menggunakan Cyberduck's SFTP
Miguel Stevens
FileZilla berfungsi bagus untuk saya, dan gratis dan open source (dan dibuat oleh orang yang sama yang membuat Firefox). seperti halnya Cygwin.
hanshenrik