[đã giải quyết một phần tại đây: https://plus.google.com/110416349762686874861/posts/PVGHL1Tpeb9 ; nhưng không hoàn toàn]
Tôi muốn sử dụng một trong các máy NixOS của mình làm bộ đệm cho các gói, để không lấy mọi thứ từ Hydra cho mỗi máy trên mỗi lần nâng cấp. Vì vậy, tôi cố gắng làm điều này: https://nixos.org/nix/manual/#sec-shaming-packages . Nhưng
Khi tôi cố gắng sử dụng
nix-serve -p <port>
,nix-env --option extra-binary-caches http://<host>:<port>/
(ngay cả khi chạy dưới dạngroot
!) Chỉ cần bỏ qua bộ đệm này, nói rằng "tệp thông tin NAR" ... "thiếu chữ ký" và cố gắng chuyển sangcache.nixos.org
. Vì vậy,nix-serve
không làm việc như mong đợi. Điều đó có nghĩa là tài liệu này không còn thực tế nữa hay đãnix-serve
bị hỏng?While
nix-copy-closure --to <user>@<host>
không hoạt động (nếu<user>
được thêm dưới dạng người dùng đáng tin cậy vàonix.trustedUsers
). Nhưng làm điều này trên mỗi nâng cấp sẽ rất bất tiện. BTW. Điều gì cũng đánh đố tôi ở đây là làm thế nào--from
được cho là được sử dụng?
Tôi có hiểu biết chung về cách chữ ký mã hóa hoạt động và lý do tại sao chúng được sử dụng để ký các gói (và kho lưu trữ). Nhưng
Trong những trường hợp này, tôi đơn giản là không cần nó: nguy cơ MITM không phải là điều đáng lo ngại. Tôi chỉ muốn sao chép một vài nhị phân của GiB từ máy này sang máy khác, thường xuyên và dễ dàng. Tất nhiên, tôi có thể vô hiệu hóa hoàn toàn xác minh thông qua
nix.requireSignedBinaryCaches = false
, nhưng không có cách nào triệt để hơn? Nếu, giả sử, tôi gọinix-env
làroot
, hoặc là "người dùng đáng tin cậy" và có bộ đệm nhị phân "phụ" này được đăng ký là "bộ đệm nhị phân đáng tin cậy"; không phải nó ngụ ý rằng tôi biết những gì tôi đang làm và không cần hệ thống cằn nhằn về việc thiếu chữ ký? (không cần phải vô hiệu hóa việc kiểm tra hoàn toàn) Tôi chưa tìm thấy cách vô hiệu hóa xác minh cho một nguồn / người dùng "đáng tin cậy" nhất định và khá nhiều nghi ngờ rằng nó không tồn tại (ví dụ như lỗi).Tôi cũng có thể, để tuân thủ cơ chế ký này, hãy thử thiết lập bộ đệm nhị phân "đầy đủ", bằng cách sử dụng
nix-store --generate-binary-cache-key
, sau đónix-push --dest <somewhere> --key-file <secret-1> --none <cherrypicked-paths>
và đăng ký khóa chung trên máy khách. Nhưng đó không phải là điều tôi muốn: lưu trữ tài liệu lưu trữ trên "máy chủ" và thiết lập đường dẫn chonix-push
rõ ràng. Tôi chỉ muốn rằng họnix-serve
đã ký các gói chia sẻ đó trước khi giao hàng, để bên nhận được vui vẻ hoặcnix-env
không phàn nàn về việc thiếu ký, nếu tôi hoàn toàn chắc chắn rằng nguồn cụ thể này đáng tin cậy!
Tóm lại: Tôi khá chắc chắn nix-serve
hoặc cơ chế kiểm tra chữ ký (hoặc cả hai) chỉ đơn giản là bị hỏng / không rõ ràng. Vì vậy, người ta có thể coi tất cả ít hơn là một câu hỏi, nhiều hơn là một ứng cử viên báo cáo lỗi. Nhưng nếu tôi sai - tốt hơn.