scp
działa dobrze we wszystkich przypadkach, ale Raspberry Pi jest zbyt słaby, aby efektywnie kopiować pliki w bezpiecznym środowisku (lan). Teoretycznie możliwe 6,75 MB / s za pośrednictwem bezprzewodowej sieci LAN 54 Mbit zmniejsza się do około 1,1 MB / s.
Czy istnieje sposób na zdalne kopiowanie plików bez szyfrowania?
Powinno to być polecenie cli bez zależności od dodatkowych usług (ftp, samba) lub przynajmniej przy minimalnej konfiguracji. Mam na myśli standardowe narzędzie, które działa całkiem dobrze po wyjęciu z pudełka ze standardowymi programami / usługami (np. Scp / ssh).
command-line
ssh
ftp
file-transfer
smb
ManuelSchneid3r
źródło
źródło
scp
)Odpowiedzi:
Być może szukasz
rcp
, wykonuje on zdalne wykonywanie za pośrednictwem,rsh
więc będziesz musiał na tym polegać i pamiętać, że cała komunikacja jest niepewna.źródło
Nie można całkowicie wyłączyć szyfrowania w ssh / scp, ale można zmusić go do użycia słabszego szyfru, który wymaga znacznie mniejszej mocy obliczeniowej. Upewnij się, że kompresja nie jest włączona w twoim ssh_config lub w linii poleceń i dodaj
-c arcfour,blowfish-cbc
do linii poleceń scp, aby wybrać słabsze szyfry.źródło
Host
sekcją w ssh_config, użyj,Ciphers arcfour,blowfish-cbc
aby wykonać kopię lustrzaną powyższego-c
przełącznika. Jeśli jednak Twoje procesory obsługują zestaw instrukcji AES-NI, spróbuję przełączyć się na[email protected]
(tak, to jest nazwa szyfru, w tym@
rzeczy), która użyje niesamowicie szybkiego (z AES-NI) AES128-GCM.Napisałem ten krótki skrypt:
Potrzeba dwóch argumentów, hosta do wysłania i pliku, który wysyłasz. Działa tylko z jednym plikiem. Używa ssh, aby rozpocząć
netcat
nasłuch na drugim końcu, a następnienetcat
wysyła go do tego portu nasłuchiwania. Dodałempv
na początku, aby dać fajny pasek postępu. Wymieńpv
sięcat
jeśli nie masz lub chciał. Zmień port 2020 na cokolwiek chcesz. Wymaga to dostępu ssh do zdalnego systemu.To jest całkowicie niepewne, ale wtedy tego właśnie chciałeś.
źródło
Myślę, że NFS jest dość niedoceniany dla tego rodzaju zadań, w których chcesz wygody, szybkości i nie dbasz o bezpieczeństwo. NFS jest naprawdę prosty do skonfigurowania, szczególnie na kliencie: zapoznaj się z tym krótkim przewodnikiem po ubuntu , wraz z dłuższą stroną pomocy społeczności ubuntu . Z punktu widzenia klienta po prostu zamontować katalogu serwera i wygląda tak jak na dysku lokalnym i można użyć
cp
lubrsync
czy cokolwiek chcesz poleceń.źródło
Istnieją poprawki dla openssh dla HPC (High Performance Computing), które poprawiają przepustowość ssh poprzez zwiększenie rozmiarów okien transferu i wyłączenie szyfrowania - jeśli nie masz nic przeciwko ponownej kompilacji (i prawdopodobnie łatom przesyłania dalej), sprawdź HPN-SSH . Jak zauważył BowlOfRed w komentarzu, należy użyć poprawek zarówno na kliencie, jak i na serwerze.
Możesz także użyć
rsync
- na jednym komputerze jako demona i jako prostego klienta na drugim. Jest to szczególnie przydatne do synchronizacji większych woluminów przez łącze sieciowe, które jest wolniejsze niż odczytywanie (i sprawdzanie) plików, ponieważ jest w stanie przesyłać tylko te części plików, które różnią się między klientem a serwerem. Zobaczrsync(1)
irsyncd.conf(5)
strony man dla szczegółów.źródło
Powyższy skrypt basha autorstwa Bena Collinsa jest dobrym rozwiązaniem, ale brakuje mu
-p
flagi portu po stronie serwera. Uruchamianie go w takim stanie zapewni tylko pusty plik lub zawieszony serwer, który nigdy nic nie robi.Łatwiej jest zobaczyć, co to robi, jeśli spojrzysz na polecenia.
nc
lub netcat, podobnie jak cat, z wyjątkiem tego, że dane wyjściowe są przesyłane echem do innej maszyny za pośrednictwem połączenia TCP. Po prostu wypychasz wyjście nc na serwerze do pliku docelowego. Możesz ustawić Miejsce docelowe w ten sam sposób i robićecho foo | nc dest.ip.address 2020
i robić różne rzeczy za pomocą nc.źródło
minęło trochę czasu od ostatniej aktualizacji, niektóre szyfry uległy zmianie, a przynajmniej na FreeBSD, blowfish nie jest już dostępny. Najszybszy szyfr, jaki znalazłem w obecnych instalacjach ssh to -c aes128-cbc.
Cieszyć się.
źródło
Jeśli chcesz przenieść całe struktury plików, użyj tar.
w systemie odbiorczym:
następnie w systemie wysyłającym:
Obejrzyj archiwum plików w jednym systemie i wypakuj w drugim;)
źródło