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.
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).
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.
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.
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.
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.
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.
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.
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;)
Tags command-line ssh ftp smb file-transfer