Câu hỏi mã hóa đối xứng gpg sử dụng đường ống


Tôi đang cố gắng tạo khóa để khóa ổ đĩa của mình (sử dụng DM-Crypt với LUKS) bằng cách lấy dữ liệu từ /dev/random và sau đó mã hóa bằng cách sử dụng GPG.

Trong hướng dẫn tôi đang sử dụng, nó gợi ý sử dụng lệnh sau:

dd if=/dev/random count=1 | gpg --symmetric -a >./[drive]_key.gpg

Nếu bạn làm điều đó mà không có một đường ống, và cho nó một tập tin, nó sẽ bật lên một dấu nhắc (n?) Curses để bạn nhập vào một mật khẩu. Tuy nhiên khi tôi ống trong dữ liệu, nó lặp lại thông báo sau bốn lần và ngồi ở đó bị đóng băng:

pinentry-curses: no LC_CTYPE known assuming UTF-8

Nó cũng nói can't connect to '/root/.gnupg/S.gpg-agent': File or directory doesn't existTuy nhiên, tôi giả định rằng điều này không có bất cứ điều gì để làm với nó, vì nó xuất hiện ngay cả khi đầu vào là từ một tập tin.

Vì vậy, tôi đoán câu hỏi của tôi tóm lại điều này: có cách nào để buộc gpg chấp nhận cụm từ mật khẩu từ dòng lệnh hay theo cách khác để làm việc này hoặc tôi sẽ phải ghi dữ liệu từ /dev/random vào một tệp tạm thời và sau đó mã hóa tệp đó? (Mà theo như tôi biết nên được alright do thực tế là tôi đang làm điều này trên đĩa CD và chưa tạo ra trao đổi, vì vậy không nên có cách nào để nó được ghi vào đĩa.)


4
2018-06-03 03:49


gốc


gpg's --no-use-agent nên nói gpg không sử dụng chương trình tác nhân và chấp nhận cụm mật khẩu đã nhập trong thiết bị đầu cuối ... ít nhất là trong gpg 1.x, phiên bản đó vẫn có vẻ được sử dụng trong các bản phát hành Ubuntu & Mint hiện tại - Xen2050


Các câu trả lời:


Đảm bảo bạn sở hữu tty:

# ls -l $(tty)
crw--w----. 1 foo tty 136, 0 Mar  1 16:53 /dev/pts/0
# chown root $(tty)

Đặt GPG_TTY:

# export GPG_TTY=$(tty)

gpg / pinentry sẽ hoạt động sau các bước này.


10
2017-07-18 20:25



Cảm ơn rất nhiều! Điều này đã giúp tôi chuyển sang gpg theo cách thủ công và cũng đã khắc phục được sự cố mà tôi gặp phải với ứng dụng dòng lệnh cơ bản của keybase, đường dẫn đến gpg đằng sau hậu trường. - ajk


Ừm ... cuối cùng, tôi quyết định chỉ viết ra một tập tin, và sau đó mã hóa tập tin đó, giả sử rằng không có trao đổi, và hệ thống tập tin nằm trong ram, nó sẽ chết với lần tắt kế tiếp.

Tuy nhiên, để tham khảo của bất cứ ai tìm thấy câu hỏi này (và để xi măng ý tưởng trong đầu của tôi), tôi sẽ viết ra một thủ tục tôi thấy rằng sẽ làm việc lâu sau khi tôi phát hiện ra khi tạo ra các initramfs.

Những gì bạn cần làm là quay lại phiên bản gpg trước khi họ bắt đầu sử dụng chương trình pinentry bên ngoài để nhập mật khẩu. Theo như tôi biết, điều đó đã xảy ra với phiên bản 2. Giả sử rằng bạn đang cài đặt Linux đang hoạt động, bạn sẽ muốn có một phiên bản gpg <2.0 được biên dịch tĩnh.

Điều này cực kỳ dễ thực hiện với Gentoo, chỉ yêu cầu lệnh sau:

USE="static" emerge -a1 "<gnupg-2"

Chỉ cần đảm bảo sử dụng ldd để xác nhận rằng chúng thực tế là tĩnh trước khi bạn sao chép chúng vào ổ USB để bạn có thể sử dụng chúng trong khi cài đặt.

Trên các bản phân phối khác, tôi đề nghị bạn xem @ người quản lý gói của bạn và nếu điều đó không hiệu quả thì tôi sẽ thử tải xuống các nguồn và biên dịch từ chúng.


3
2018-06-11 23:13