유닉스에서 일부 파일을 암호화하는 좋은 솔루션은 무엇입니까? [닫은]


44

Linux에서 특정 디렉토리를 암호화하는 유틸리티를 찾고 있습니다. 나는 완전한 디스크 암호화 서비스를 찾고 있지 않지만 단순히 클라우드에 파일을 저장하기 위해 몇 개의 디렉토리를 암호화하려고합니다. 일단 검색하면 액세스하기 전에 암호를 해독해야합니다. 몇 백 개의 디렉토리 (수백 GB 크기)에 대해이를 수행하려고합니다. 어떤 아이디어? CLI 기반이 바람직합니다.

답변:


51

이 작업에는 GnuPG 만 사용합니다. 폴더는 먼저 TAR-GZ 아카이브에 압축됩니다.

tar czf files.tar.gz /path/to/my/files

아직 완료하지 않은 경우 먼저 GPG 개인 / 공개 키 쌍을 만들어야합니다.

gpg --gen-key

지시를 따르다. 첫 번째 테스트에는 기본값이 충분해야합니다. 다음과 같은 것이 나타납니다 :

gpg (GnuPG) 2.0.18; 저작권 (C) 2011 자유 소프트웨어 재단, Inc.
이것은 무료 소프트웨어입니다. 자유롭게 변경하고 재배포 할 수 있습니다.
법률에 의해 허용되는 한 보증은 없습니다.

원하는 키 종류를 선택하십시오 :
   (1) RSA 및 RSA (기본값)
   (2) DSA와 Elgamal
   (3) DSA (서명 만)
   (4) RSA (서명 만)
당신의 선택? 1
RSA 키의 길이는 1024와 4096 비트 사이 일 수 있습니다.
어떤 키 크기를 원하십니까? (2048) 4096
요청 된 키 크기는 4096 비트입니다.
키 유효 기간을 지정하십시오.
         0 = 키가 만료되지 않습니다
        = 키는 n 일 후에 만료됩니다
      w = 키가 n 주 후에 만료 됨
      m = 키가 n 개월 안에 만료 됨
      y = 키는 n 년 후에 만료됩니다
키가 유효합니까? (0)
키가 전혀 만료되지 않습니다
이 올바른지? (y / N) y

GnuPG는 키를 식별하기 위해 사용자 ID를 구성해야합니다.

실명 : 파일 암호화 키
이메일 주소 : admin@company.org
설명 : 파일 암호화 키
이 USER-ID를 선택했습니다 :
    "파일 암호화 키 (파일 암호화 키)"

(N) ame, (C) omment, (E) mail 또는 (O) kay / (Q) uit를 변경 하시겠습니까? 영형

키 암호를 입력하라는 메시지가 표시됩니다. 강한 것을 사용하는 것이 좋습니다. 어쨌든 파일 암호화에는 필요하지 않으므로 나중에 배치 사용에 대해 걱정하지 마십시오.

모든 것이 끝나면 다음과 같은 화면이 나타납니다.

우리는 많은 랜덤 바이트를 생성해야합니다. 수행하는 것이 좋습니다
다른 행동 (키보드로 타이핑, 마우스 이동,
원반) 이것은 난수를 제공합니다
충분한 엔트로피를 얻을 수있는 더 좋은 기회.
우리는 많은 랜덤 바이트를 생성해야합니다. 수행하는 것이 좋습니다
다른 행동 (키보드로 타이핑, 마우스 이동,
원반) 이것은 난수를 제공합니다
충분한 엔트로피를 얻을 수있는 더 좋은 기회.
gpg : 궁극적으로 신뢰할 수있는 것으로 표시된 키 FE53C811
공개 및 비밀 키가 생성되고 서명되었습니다.

gpg : trustdb 확인
gpg : 3 개의 한계, 1 개의 완전한, PGP 신뢰 모델
gpg : 깊이 : 0 유효 : 1 부호 : 0 신뢰 : 0-, 0q, 0n, 0m, 0f, 1u
펍 ***** / ******** 2013-03-19
      키 지문 = **** **** **** **** **** **** **** **** **** **** ****
uid 파일 암호화 키 (파일 암호화 키) 
하위 ***** / ******** 2013-03-19

이제 다른 머신에서 가져 오기 위해 공개 키 파일을 내보낼 있습니다.

gpg --armor --output file-enc-pubkey.txt --export 'File Encryption Key'

File Encryption Key키 생성 과정에서 입력 한 이름의 I입니다.

이제 새로 만든 아카이브에서 GnuPG를 사용하고 있습니다.

gpg --encrypt --recipient 'File Encryption Key' files.tar.gz

이제 files.tar.gz.gpg암호화 된 파일이 있습니다.

다음 명령으로 암호를 해독 할 수 있습니다 (암호를 묻습니다).

gpg --output files.tar.gz --decrypt files.tar.gz.gpg

그것은 전체 마술이다.

키를 백업하십시오! 그리고 당신의 암호를 잊지 마십시오! 백업 또는 잊어 버리지 않은 경우 기가 바이트의 데이터 정크가 있습니다!

이 명령으로 개인 키를 백업하십시오.

gpg --armor --output file-enc-privkey.asc --export-secret-keys 'File Encryption Key'

장점

  • 암호화 기는 암호화에 대한 중요한 정보를 알 필요가 없습니다. 암호화는 공개 키로 수행됩니다. (로컬 워크 스테이션에서 키 페어를 생성하고 공개 키만 서버로 전송할 수 있습니다)
  • 스크립트 파일 또는 작업에 비밀번호가 표시되지 않습니다
  • 원하는 모든 시스템에서 암호화 기만큼 사용할 수 있습니다
  • 개인 키와 암호를 비밀로 유지하면 모든 것이 훌륭하고 타협하기가 매우 어렵습니다.
  • 특정 PGP / GPG 구현을 사용하여 Unix, Windows 및 Linux 플랫폼에서 개인 키로 해독 할 수 있습니다
  • 시스템 암호화 및 암호 해독에 대한 특별한 권한 필요 없음, 마운트 없음, 컨테이너 없음, 특수 파일 시스템 없음

1
데이터에 따라 압축 tar하지 않고 z스위치 없이 실행하는 것이 더 빠를 수 있습니다 .
l0b0

28

필자는 주로 두 가지 방법을 사용합니다.

첫 번째 방법 : tar 및 openssl

디렉토리 타르

tar cvf backup.tar /path/to/folder

tar 명령에서 [v] 스위치를 제거하여 상세 모드를 끌 수 있습니다.

암호화

openssl aes-128-cbc -salt -in backup.tar -out backup.tar.aes -k yourpassword

aes-128-cbc를 다른 암호화 방법 openssl 지원 (openssl --help)으로 변경할 수 있습니다.

해독

openssl aes-128-cbc -d -salt -in backup.tar.aes -out backup.restored.tar

비밀번호를 묻습니다.

두 번째 방법 : 암호화 된 zip

zip -r -0 -e backup.zip /path/to/folder

비밀번호를 묻습니다.

  • -r은 재귀 적으로 의미합니다 (전체 폴더 트리)
  • -0은 저장만을 의미합니다 (압축하지 않고 빠름)
  • -e는 아카이브 암호화를 의미합니다.

이것의 한 가지 장점 : Windows 기반 시스템에서 더 잘 작동합니다.


3
명령 줄에 암호를 입력하는 것은 좋지 않습니다. 비밀번호는 쉘 히스토리에 남아 있습니다.
pbies

1
또한 주목해야한다 zip암호화 깨질 소문된다.
Acumenus

22

공개 / 개인 키 쌍으로 파일을 암호화하지 않고 대신 암호 문구와 함께 대칭 암호화 만 사용하려면 다음 명령을 사용하십시오.

gpg --symmetric --cipher-algo aes256 files.tar.gz

암호 문구를 입력하라는 메시지가 표시됩니다. 그런 다음 이름 files.tar.gz.gpg이 지정된 암호화 된 파일 이 생성됩니다.

암호를 해독하려면 다음 명령을 사용하십시오

gpg --decrypt files.tar.gz.gpg > files.tar.gz


2

그러한 목적을 위해 나는 FUSE 암호화 ( encfs 와 같은)를 제안 할 것이다. 더 작은 데이터에는 gpg를 사용할 것이다.

그것은 사용자 공간에서 구현되어 특별한 권한이 필요하지 않습니다.


1

데이터 암호화를 목적으로하는 일부 Linux 파일 시스템이 있습니다. 예를 들어 LUX 에 대해 이미 생각해 보셨습니까 ?


1

하나의 파일을 암호화하는 매우 간단한 방법은 다음과 같습니다.

gpg -c filename.ext

비밀번호 문구를 두 번 요청 받으면 gpg가를 생성 filename.ext.gpg합니다. 암호화 된 파일을 클라우드 서비스에 업로드하십시오. 파일을 복구하려면 다음을 사용하십시오.

gpg filename.ext.gpg

다시 만들 것입니다 filename.ext. 참고 것을 암호화되지 않은 파일은 안전하지 않습니다, 그리고 관련 데이터도 삭제 후 저장 매체에 남아있을 것이다. gpg 컨테이너 만 안전합니다. EncFS 는 파일 수준에서 클라우드 기반 암호화를위한보다 실용적인 대안입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.