scp
berfungsi dengan baik dalam semua kasus, tetapi Raspberry Pi lemah untuk menyalin file secara efisien dalam lingkungan yang aman (lan). Secara teoritis, 6,75 MB / s melalui 54 Mbit nirkabel dan menyusut menjadi sekitar 1,1 MB / s.
Apakah ada cara untuk menyalin file dari jarak jauh tanpa enkripsi?
Ini harus berupa perintah cli tanpa ketergantungan pada layanan tambahan (ftp, samba) atau setidaknya dengan konfigurasi minimum. Maksud saya, alat standar yang bekerja cukup baik di luar kotak dengan program / layanan standar (seperti scp / ssh).
command-line
ssh
ftp
file-transfer
smb
ManuelSchneid3r
sumber
sumber
scp
)Jawaban:
Anda mungkin mencari
rcp
, ia melakukan eksekusi jarak jauh melaluirsh
sehingga Anda harus mengandalkan itu dan perlu diingat bahwa semua komunikasi tidak aman.sumber
Anda tidak dapat menonaktifkan enkripsi sepenuhnya pada ssh / scp tetapi Anda dapat memaksanya untuk menggunakan cipher yang lebih lemah yang jauh lebih sedikit cpu intensif. Pastikan kompresi tidak diaktifkan di ssh_config Anda atau di baris perintah dan tambahkan
-c arcfour,blowfish-cbc
ke baris perintah scp Anda untuk memilih sandi yang lebih lemah.sumber
Host
bagian di ssh_config Anda, gunakanCiphers arcfour,blowfish-cbc
untuk mencerminkan-c
sakelar di atas . Namun, jika CPU Anda mendukung set instruksi AES-NI, saya akan mencoba beralih ke[email protected]
(ya, itu nama sandi, termasuk@
barang - barangnya), yang akan menggunakan sangat cepat (dengan AES-NI) AES128-GCM.Saya menulis skrip cepat ini:
Dibutuhkan dua argumen, host untuk mengirim dan file yang Anda kirim. Ini hanya berfungsi untuk satu file. Ia menggunakan ssh untuk memulai
netcat
mendengarkan pada ujung yang berlawanan dan kemudian menggunakannyanetcat
untuk mengirimkannya ke port mendengarkan. Saya menambahkanpv
ke awal untuk memberikan progress bar yang bagus. Gantipv
dengancat
jika Anda tidak memiliki atau menginginkannya. Ubah port 2020 menjadi apa pun yang Anda suka. Ini mengharuskan Anda untuk memiliki akses ssh ke sistem jarak jauh.Ini sama sekali tidak aman, tetapi kemudian, itulah yang Anda inginkan.
sumber
Saya pikir NFS cukup diremehkan untuk tugas semacam ini, di mana Anda menginginkan kenyamanan, kecepatan dan tidak peduli dengan keamanan. NFS sangat sederhana untuk diatur, terutama pada klien: lihat panduan singkat ini untuk ubuntu , bersama dengan halaman bantuan komunitas ubuntu yang lebih panjang ini . Dari perspektif klien Anda hanya memasang direktori server dan itu terlihat seperti drive lokal dan Anda dapat menggunakan
cp
ataursync
atau perintah apa pun yang Anda inginkan.sumber
Ada patch untuk openssh untuk HPC (High Performance Computing) yang meningkatkan throughput ssh dengan meningkatkan ukuran jendela transfer dan menonaktifkan enkripsi - jika Anda tidak keberatan mengkompilasi ulang (dan mungkin patch port forwarding), periksa HPN-SSH . Seperti BowlOfRed melihat dalam komentar, Anda akan perlu menggunakan patch pada kedua klien dan server.
Anda juga dapat menggunakan
rsync
- di satu mesin sebagai daemon dan sebagai klien sederhana di yang lain. Ini sangat berguna untuk menyinkronkan volume yang lebih besar melalui tautan jaringan yang lebih lambat daripada membaca (dan memeriksa) file, karena ia dapat mentransfer hanya bagian-bagian file yang berbeda antara klien dan server. Lihatrsync(1)
danrsyncd.conf(5)
halaman manual untuk detailnya.sumber
Script bash di atas oleh Ben Collins adalah solusi yang baik, tetapi ia kehilangan
-p
bendera untuk port di sisi server. Menjalankan itu sebagaimana adanya hanya akan memberi Anda file kosong atau server macet yang tidak pernah melakukan apa pun.Lebih mudah untuk melihat apa yang dilakukan jika Anda hanya melihat perintah.
nc
, atau netcat, seperti kucing kecuali untuk output yang digaungkan ke komputer lain melalui koneksi TCP. Anda hanya mendorong output dari nc di server ke file tujuan. Anda dapat mengatur Tujuan dengan cara yang sama dan melakukanecho foo | nc dest.ip.address 2020
dan melakukan segala macam hal lain dengan nc.sumber
sudah beberapa waktu sejak pembaruan terakhir, beberapa cipher telah berubah, dan setidaknya pada freeBSD, blowfish tidak lagi tersedia. Cipher tercepat yang saya temukan dengan instalasi ssh saat ini adalah -c aes128-cbc.
Nikmati.
sumber
Jika Anda ingin mentransfer seluruh struktur file, gunakan tar.
dalam sistem penerima:
kemudian pada sistem pengiriman:
Tonton arsip file di satu sistem dan ekstrak di yang lain;)
sumber