Mã hóa thư mục với GnuPG?


10

Có cách nào để mã hóa một thư mục bằng cách sử dụng gpg? Nó dường như chỉ chấp nhận các tập tin như là đối số.


Cũng có nhiều cách để mã hóa toàn bộ thư mục hoặc ổ đĩa, nhưng chúng có phạm vi khác nhau: chúng cung cấp mã hóa trong suốt (bạn chỉ cần nhập mật khẩu để gắn ổ đĩa), nhưng kết quả không thể được đọc bởi GPG hoặc PGP.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


11

Tại sao tarcác tập tin không được mã hóa và sau đó mã hóa tarball?


Tôi thấy đây là giải pháp. Nó không linh hoạt và đòi hỏi nhiều tài nguyên cho ngày tar và gpg. Cảm ơn câu trả lời!
joyimdim

@gladimdim: cảm ơn vì đã chấp nhận, nhưng ý của bạn là "không linh hoạt" và "nhiều tài nguyên" là gì? Hay là có một lỗi đánh máy?
alex

bởi "không linh hoạt" Tôi có nghĩa là tôi cần thư mục tar thủ công sau đó gpg nó. Tôi có khoảng 60Gb các bức ảnh hiện đã được tarball và gpged. Phải mất khoảng 2 giờ và 4 cửa sổ thiết bị đầu cuối đồng thời để tăng tốc quá trình này. Bây giờ tôi chỉ tarball và gpg mỗi thư mục mới với các bức ảnh mà tôi tạo ra.
joyimdim

Hừm, có vẻ như thời gian khá hợp lý cho kích thước dữ liệu đó. Bạn có mong đợi để chạy nó nhanh hơn nhiều? Bạn có kế hoạch gì khi bạn cần một bức ảnh đó - giải mã / gỡ bỏ tất cả 60Gigs?
alex

2

Tôi chỉ thấy tùy chọn --multifiletrên trang web:

Điều này sửa đổi một số lệnh khác để chấp nhận nhiều tệp để xử lý trên dòng lệnh hoặc đọc từ STDIN với mỗi tên tệp trên một dòng riêng biệt. Điều này cho phép nhiều tệp được xử lý cùng một lúc. Tệp --multi‐ hiện có thể được sử dụng cùng với --verify, --encrypt và --decrypt. Lưu ý rằng --multifile --verify có thể không được sử dụng với chữ ký tách rời.

Những gì bạn đang tìm kiếm cụ thể là --encrypt-files, và một lần nữa trang web:

Đồng nhất với --multifile --encrypt.


1
Cảm ơn, điều này hoạt động tốt ngoại trừ việc gpg không hỗ trợ khóa --multipl với tùy chọn --symmetric (tôi chỉ muốn mã hóa bằng cụm mật khẩu).
joyimdim

1

Này, tôi đọc các bình luận về câu trả lời đã được đánh dấu là ngoại trừ; Có vẻ như bạn nên biết về sự kỳ diệu của |(ống ẩn danh) kiểm tra câu trả lời tôi vừa đăng trên superuser và bạn sẽ thấy rằng tar& gpgcó thể được nối với nhau sao cho đầu ra của bạn được nén và mã hóa trước khi xuất ra. Lưu ý rằng nó vẫn sẽ sử dụng các tài nguyên hệ thống quan trọng, vì vậy hãy kiểm tra các mantrang để biết nicelệnh giới hạn khả năng của một lệnh chỉ ăn một phần trăm tài nguyên nhất định. Ngoài ra, trong khi tôi đang có tâm trạng đề xuất các chủ đề có thể làm cho cuộc sống của bạn dễ dàng hơn trên dòng lệnh nói chung; nhìn vào các mô tả tập tin và các đường ống được đặt tên để truyền dữ liệu xung quanh.

Nếu bạn muốn xem loại phép thuật nào có thể được thực hiện khi hiểu các đối tượng trên, thì hãy kiểm tra nhật ký xây dựng Travis-CI và các tập lệnh liên quan để tìm giải pháp liên quan đến tự động hóa GnuPG trên dòng lệnh.

---- Cập nhật

Theo yêu cầu, một ví dụ để xử lý các thư mục có thể được tìm thấy trong tập lệnh được đề cập trước đó ở dòng 680 và một ví dụ tổng quát hơn sẽ là ...

#!/usr/bin/env bash
dir_path="${1:?${0##*/} needs a directory path as the first argument}"
default_gpg_email="your-email@host.domain"
gpg_email="${2:-$default_gpg_email}"
_dir_name="${dir_path##*/}"
_dir_name="${_dir_name%/*}"
Var_star_date="$(date -u +%s)"

if [ -d "${dir_path}" ]; then
    tar -cz - "${dir_path}" | gpg --always-trust --armor --batch --no-tty --encrypt --recipient ${gpg_email} > /tmp/${Var_star_date}_${_dir_name}.tgz.gpg"
else
    echo "${0##*/} operates on directories"
    exit 1
fi

... có thể chạy với script-name.sh /path/to/dirhoặc script-name.sh /path/to/dir new-email@host.domainnên xuất ra /tmpthư mục một tệp<current-date>_<top-dir-name>.tgz.gpg


Bạn có thể viết một ví dụ?
Nikana Reklawyks

Đúng, mặc dù nó có thể khiến tôi mất một chút :-D
S0AndS0
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.