Compactar, criptografar e fazer upload de um diretório para um servidor FTP no Linux

1

Eu quero realizar algo bastante simples (pelo menos parece ser):

  1. Comprimir um diretório
  2. Criptografar o arquivo compactado
  3. Carregue o & compactado arquivo criptografado via FTP

Eu também quero fazer isso de forma automatizada no servidor Linux.

TrueCrypt não é realmente uma opção neste caso, pois parece que não é possível compactar um único arquivo. Em vez disso, você precisa fazer um volume que monte e mova os arquivos.

Esta questão responde como fazer o upload e sei como comprimir um diretório. É apenas a criptografia que está me dando problemas.

    
por Kristoffer L 25.05.2010 / 16:44

2 respostas

2

Eu usei bcrypt para isso com muito prazer. Na verdade, estou usando < href="http://www.gnupg.org/"> gpg agora. (Acabei de verificar, já faz muito tempo desde que eu automatizei o processo envolvido. Eu não me lembro por que eu mudei, mas eu acho que pode ter sido que eu senti gpg foi mais fácil de escrever.) Minha linha de comando é assim:

gpg -r RECIP --output OUTPUT_FILE_NAME --encrypt INPUT_FILE_NAME

... onde

  • RECIP é o nome da chave que eu quero usar (o -r é para "destinatário;" gpg começou a vida como um meio de criptografar e-mails; não deixe isso incomodar você, é de propósito geral) .
  • OUTPUT_FILE_NAME é o arquivo de saída (criptografado)
  • INPUT_FILE_NAME é o arquivo de entrada (texto não criptografado)
por 25.05.2010 / 16:48
1

Existe algum motivo específico para você usar o FTP? Porque se não, o SCP será uma opção melhor. Primeiro porque ele usa um canal criptografado para enviar os arquivos (sem senhas de texto puro para os carros do Google StreetView para gravar :-), segundo porque ele pode usar a autenticação de chave privada e o terceiro porque é realmente destinado à cópia.

Independentemente disso, tar é a maneira padrão de criar um único arquivo fora de um diretório, e a opção -z usará a compactação GZIP.

tar -zcvf OUTFILE.tgz DIRECTORY

Então você precisa criptografá-lo. Eu uso ccrypt , mas existem outras opções. E talvez haja razões para não usá-lo que eu não conheça.

ccrypt -k KEYFILE OUTFILE.tgz

Por fim, copie-o para o seu servidor de destino. Presumo que você tenha um diretório "Transferir" em seu diretório pessoal e tenha configurado a autenticação de chave privada.

scp OUTFILE.tgz.cpt YOURHOST:Transfer

Se o FTP realmente for um requisito, você pode usar curl para fazer a transferência. Eu nunca fiz isso sozinho (e não tenho nenhum servidor FTP com o qual experimentá-lo), mas uma rápida leitura da página do manual indica o seguinte:

curl --upload-file OUTFILE.tgz.cpt -u USER:PASSWORD ftp:://YOURHOST/HOSTPATH
    
por 25.05.2010 / 18:28