Copie arquivos sem criptografia (ssh) na rede local

22

scp funciona bem em todos os casos, mas o Raspberry Pi é fraco para copiar arquivos eficientemente em um ambiente seguro (lan). O teoricamente possível de 6,75 MB / s via wireless 54 Mbit encolhe para cerca de 1,1 MB / s.

Existe uma maneira de copiar arquivos remotamente sem criptografia?

Deve ser um comando cli sem dependências para serviços extras (ftp, samba) ou pelo menos com um mínimo de configuração. Quero dizer, uma ferramenta padrão que funciona muito bem com programas / serviços padrão (como o scp / ssh).

    
por ManuelSchneid3r 03.02.2014 / 12:58

8 respostas

13

Você pode estar procurando rcp , ele executa a execução remota via rsh , então você terá que confiar nisto e ter em mente que todas as comunicações são inseguras.

    
por 03.02.2014 / 13:02
11

Você não pode desabilitar a criptografia completamente em ssh / scp, mas pode forçá-la a usar uma cifra mais fraca, que consome muito menos CPU. Certifique-se de que a compactação não esteja ativada em seu ssh_config ou na linha de comandos e inclua -c arcfour,blowfish-cbc em sua linha de comandos do scp para selecionar cifras mais fracas.

    
por 03.02.2014 / 14:12
8

Eu escrevi este script rápido:

#!/bin/bash

ssh "$1" "nc -l 2020 > \"$2\" &"
pv "$2" | nc "$1" 2020

São necessários dois argumentos, o host para enviá-lo e o arquivo que você está enviando. Só funciona para um arquivo. Ele usa o ssh para iniciar um netcat de escuta na extremidade oposta e, em seguida, usa netcat para enviá-lo para essa porta de atendimento. Eu adicionei pv ao início para dar uma boa barra de progresso. Substitua pv por cat se você não tem ou deseja isso. Altere a porta 2020 para o que você quiser. Isso requer que você tenha acesso ssh ao sistema remoto.

Isso é completamente inseguro, mas é isso que você queria.

    
por 21.10.2014 / 22:51
8

Eu acho que o NFS é bastante subestimado para esse tipo de tarefa, onde você deseja conveniência, velocidade e não se preocupa com segurança. O NFS é realmente simples de configurar, especialmente no cliente: veja este pequeno guia para o Ubuntu , juntamente com esta página de ajuda da comunidade do ubuntu mais longa . Do ponto de vista do cliente, você apenas monta o diretório do servidor e ele se parece com uma unidade local e você pode usar cp ou rsync ou qualquer comando que desejar.

    
por 03.02.2014 / 14:17
4

Existem correções para o openssh para HPC (High Performance Computing) que melhoram o throughput ssh aumentando os tamanhos das janelas de transferência e desativando a criptografia - se você não se importar em recompilar (e provavelmente em patches de portabilidade futura), marque HPN-SSH . Como BowlOfRed notou no comentário, você precisaria usar os patches em ambos o cliente e o servidor.

Você também pode usar rsync - em uma máquina como um daemon e como um cliente simples na outra. Ele é particularmente útil para sincronizar volumes maiores sobre o link de rede que é mais lento do que a leitura (e a soma de verificação) dos arquivos, pois é capaz de transferir apenas as partes de arquivos que diferem entre cliente e servidor. Veja as páginas rsync(1) e rsyncd.conf(5) man para detalhes.

    
por 21.10.2014 / 23:27
3

O script bash acima, escrito por Ben Collins, é uma boa solução, mas ele está sem o sinalizador -p da porta no lado do servidor. Executar como está, seria apenas fornecer um arquivo vazio ou um servidor suspenso que nunca faz nada.

É mais fácil ver o que isso está fazendo se você observar os comandos.

DestinationShell# nc -l -p 2020 > file.txt

SourceShell# cat file.txt | nc dest.ip.address 2020

nc , ou netcat, é como o gato, exceto que a saída é reproduzida em outra máquina por meio de uma conexão TCP. Você está apenas empurrando a saída de nc no servidor para o arquivo de destino. Você pode configurar o Destino da mesma forma e fazer echo foo | nc dest.ip.address 2020 e fazer todo tipo de coisas com nc.

    
por 20.08.2015 / 22:21
0

já passou algum tempo desde a última atualização, algumas cifras foram alteradas e, pelo menos no freeBSD, o baiacu não está mais disponível. A codificação mais rápida que encontrei com as instalações atuais do ssh é -c aes128-cbc.

Aproveite.

    
por 23.02.2018 / 17:55
0

Se você quiser transferir estruturas de arquivos inteiras, use tar.

no sistema de recebimento:

[]# nc -l 2020 | tar xvf -

depois no sistema de envio:

[]# tar cvf - | nc dst.hostname.net 2020

Assista ao arquivo de arquivos em um sistema e extraia do outro;)

    
por 01.05.2018 / 11:37