Seus requisitos # 5 (sem armazenamento de terceiros / na nuvem) e # 6 (sem IP / hostname disclosure) estão em conflito mútuo: para transferir um arquivo para em um computador remoto, você faz uma conexão direta ou não. Se você fizer isso, o terminal remoto terá seu endereço IP (apenas por causa de o modo como o TCP / IP funciona); se você não fizer, então por suposição você é retransmitindo um terceiro para fazer a transferência e eles têm que armazenar seus dados.
Dito isto, há algumas aproximações ao seu pedido.
F * EX: usando transferência de terceiros com base na Web
O servidor F * EX nasceu exatamente
para este fim. A partir da % descrição do pacotefex
:
F*EX (Frams's Fast File EXchange) is a service that can be used to allow users anywhere on the Internet to exchange very large files quickly and conveniently.
The sender uploads the file to the F*EX-server and the recipient automatically gets a notification e-mail with a download-URL.
Main features of F*EX:
- file transfer of virtually unlimited file size
- sender and recipient only need an e-mail program and a web browser (of any kind; they do not have to install any software) [...]
- maintenance-free: no administration necessary beyond creating new F*EX accounts
- multiple recipients only require one stored copy
- F*EX uses HTTP and needs no firewall tunnels
- shell clients provided for commandline users:
fexsend
andfexget
. (fex-utils package)
Tanto quanto eu entendo, F * EX não faz criptografia nativamente, mas você pode apenas criptografar o arquivo que você deseja enviar com o GPG.
O servidor F * EX é totalmente aberto, portanto, basta instalar e executar em um servidor que você confia.
A página inicial do EX explica em detalhes como o FEX se compara com outros serviços e protocolos de transferência de arquivos.
sendfile
: transferência assíncrona de arquivos entre computadores UNIX
O comando sendfile foi em torno de cerca de 10 anos: você instalá-lo ee o acompanhamento daemon no envio e no recebimento e, em seguida, o a transferência é tão fácil quanto digitar:
sendfile a.file user@otherhost
Além disso, sendfile
pode criptografar automaticamente o arquivo usando o GPG
(procure as opções -pe
e -ps
).
Como isso faz uma conexão direta, no entanto:
- o computador receptor deve estar ativo e funcionando em algum momento
- ele precisa aceitar conexões na
sendfile
port, o que significa que ele deve ser acessado por meio de um IP público - ele pode registrar o endereço IP dos remetentes
sendfile foi escrito pelos mesmos autores de F * EX (veja acima), e eles explicam as razões pelas quais eles escolheram mudar para uma terceira parte baseada em HTTP serviço na página do sendfile
faça você mesmo: use nc
É relativamente fácil fazer a transferência de arquivos usando apenas netcat .
No lado de recebimento , você executa:
nc -l 9999 > myfile
Depois disso, no lado enviando , você executa:
nc otherhost 9999 < myfile
Como de costume, você deve criptografar o arquivo com GPG antes de enviá-lo (ou você
pode fazer isso on-the-fly com um tubo, se você está confortável com o
Concha). Você pode substituir o 9999
por qualquer outra porta válida
número (por exemplo, para fazer várias transferências de uma só vez).
Desvantagens:
- coordenação: você deve emitir os dois comandos nas duas extremidades na ordem correta, para que tanto o remetente quanto o destinatário estejam on-line ao mesmo tempo e devem coordenar, por exemplo, um bate-papo ou uma linha telefônica. / li>
- ele terá que aceitar conexões na porta 9999, o que significa que ele deve ser acessado por meio de um IP público
- o terminal de recebimento pode registrar seu endereço IP