Nếu bạn đang sử dụng khóa công khai ssh để xác thực, thì bạn chỉ đang xác thực với trình nền ssh của mình chứ không phải với hệ thống. Trình nền SSH sẽ tuyên bố rằng nó đã thực hiện xác thực và sau đó đăng nhập bạn vào trình bao. Mặc dù quá trình này có thể đang sử dụng ngăn xếp PAM để thiết lập phiên đăng nhập của bạn, tuy nhiên, nó không xử lý xác thực thông qua ngăn xếp PAM.
Tôi có thể nói rõ ràng với bạn, nhưng vé Kerberos chỉ có thể nhận được nếu bạn sử dụng phần mềm yêu cầu nó. Trên một hệ thống điển hình, một vé như vậy sẽ được yêu cầu thông qua PAM xác thực
giai đoạn nếu một trong hai pam_sss
hoặc pam_krb5
được định nghĩa trong xác thực
ngăn xếp cấu hình PAM được ứng dụng của bạn sử dụng. Khi ứng dụng như vậy (ví dụ: sshd
) đang bỏ qua xác thực
giai đoạn này, không có mô-đun PAM nào chịu trách nhiệm xác thực được gọi và không có vé Kerberos nào có thể nhận được theo cách này.
Khi ứng dụng khách Kerberos cố gắng yêu cầu một vé cấp vé ban đầu (TGT), nó và Kerberos KDC trao đổi một danh sách cái gọi là "phương pháp xác thực trước". Trên thực tế, đây là những phương pháp được sử dụng để xác thực ứng dụng khách của bạn với KDC. Một phương thức do khách hàng chọn, nếu được KDC chấp nhận, sẽ thực hiện quy trình xác thực thực tế. Không có phương pháp xác thực trước Kerberos nào sử dụng cặp khóa SSH để xác thực, vì vậy bạn không thể sử dụng cặp khóa SSH để lấy TGT. Tất cả các phương pháp xác thực trước dựa trên mật khẩu tiêu chuẩn đều được xây dựng xung quanh cả ứng dụng khách Kerberos và Kerberos KDC đã biết khóa dài hạn (mật khẩu) của người dùng chính, mặc dù họ không chuyển nó qua mạng. Hiện tại có một phương pháp không dựa vào mật khẩu và nó được gọi là phương pháp PKINIT dựa trên việc hoàn tất xác thực bằng cơ sở hạ tầng chứng chỉ khóa công khai.
Bạn có thể làm gì? Thay vào đó, bạn có thể muốn thay đổi hoàn toàn và sử dụng thẻ thông minh để xác thực. Xác thực thẻ thông minh được Kerberos hỗ trợ dưới dạng phương thức xác thực trước 'pkinit'.Ngoài ra, daemon SSH có khả năng xử lý chứng chỉ từ thẻ thông minh của bạn để xác thực tương tự như trường hợp cặp khóa SSH.
Nếu bạn muốn sử dụng xác thực PKINIT, bạn có hai cách: lấy Kerberos TGT với PKINIT trên máy trạm của bạn và đăng nhập vào trình nền SSH trên máy khác bằng vé Kerberos mà bạn có cục bộ hoặc sử dụng chứng chỉ thẻ thông minh của bạn để đăng nhập vào trình nền SSH với tư cách là một Khóa SSH và sau đó sử dụng chuyển tiếp thẻ thông minh để yêu cầu một vé Kerberos trực tiếp trên máy chủ. Trong trường hợp trước, TGT ban đầu của bạn sẽ không được tự động chuyển tiếp đến máy chủ SSH, trừ khi bạn đã yêu cầu ủy quyền vé. Trong trường hợp sau, bạn vẫn cần yêu cầu TGT.
Bất kể sử dụng phương pháp nào, bạn chắc chắn có thể hưởng lợi từ https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_certificates_in_idm/index
Nếu bạn không muốn hoặc không thể sử dụng thẻ thông minh, thì phương pháp duy nhất còn lại là sử dụng đăng nhập Kerberos trực tiếp và quên xác thực cặp khóa SSH.