TL; DR: Cách tốt nhất để gắn kết nhà người dùng thông qua SSHFS (hoặc bất kỳ giao thức được mã hóa nào khác) khi đăng nhập trong khi thực thi việc sử dụng các khóa bảo mật như Yubikeys và Nitrokeys là gì?
Phiên bản dài:
Tôi cần xây dựng một mạng mới bao gồm (ít nhất ban đầu) một máy chủ trung tâm và nhiều máy khách. Ý tưởng là để máy khách khởi động qua PXE và sau đó gắn tất cả các thư mục cần thiết qua SSHFS. Điều đó hoàn toàn không có vấn đề gì với pam_mount được định cấu hình chính xác nếu tôi chỉ muốn sử dụng tên người dùng và mật khẩu, nhưng tôi cũng cần thực thi yêu cầu sử dụng Yubikey làm yếu tố thứ hai để mở khóa các giá đỡ SSHFS.
Bạn có biết bất kỳ giải pháp ít nhiều sẵn sàng sử dụng nào mà tôi có thể sử dụng để đạt được mục tiêu của mình không?
Tất nhiên, để hoàn thiện, tôi cũng có một vài ý tưởng, nhưng tôi không biết liệu một trong số chúng có thực sự khả thi hay không:
Sử dụng pam_exec kết hợp với tập lệnh tùy chỉnh hoạt động như một trình bao bọc xung quanh tất cả các bước cần thiết. Trình nền máy chủ sẽ kiểm tra xác thực cơ bản bằng tên người dùng + mật khẩu và nếu thành công, sẽ phản hồi bằng một thách thức (FIDO2) mà máy khách sẽ sử dụng để tạo xác nhận FIDO2 mà máy chủ có thể kiểm tra lại và nếu thành công, tạo SSH tạm thời khóa trong đó khóa chung sẽ được thêm vào tệp ủy quyền và khóa riêng được trả lại cho máy khách. Sau một khoảng thời gian cụ thể, máy chủ sẽ xóa mục nhập này một lần nữa. Tôi khá chắc chắn rằng điều này là khả thi.
Một lần nữa sử dụng pam_exec và tập lệnh tùy chỉnh nhưng lần này thêm Keycloak vào thiết lập máy chủ để trình nền máy chủ hoạt động như một Nhà cung cấp dịch vụ về OpenID Connect. Tôi nghĩ, vấn đề ở đây là tập lệnh máy khách (trình bao bọc) sẽ cần có khả năng xác thực với Keycloak vì không thể sử dụng "Cấp trực tiếp"/"Cấp chủ sở hữu tài nguyên" với xác thực hai yếu tố dựa trên mã thông báo phần cứng.
Cảm ơn trước cho bất kỳ gợi ý.