Buộc xác thực khóa công khai SSH cho người dùng cụ thể


10

Có thể buộc người dùng cụ thể đăng nhập bằng khóa chung, đồng thời cho phép người dùng khác đăng nhập bằng mật khẩu không? Vì xác thực khóa công khai (với cụm mật khẩu) mạnh hơn xác thực chỉ bằng mật khẩu, chúng tôi muốn yêu cầu sudoers đăng nhập bằng khóa chung. Tuy nhiên, sẽ không thuận tiện khi buộc người dùng bình thường phải làm như vậy. Trong sshd_config, tôi không thấy bất kỳ cấu hình liên quan đến chính sách.

Câu trả lời:


11

Bạn có một vài lựa chọn. Trong câu trả lời này, tôi sẽ giả sử bạn có một sudoersnhóm được xác định.

Hãy xem sshd_configtrang người đàn ông, và tìm kiếm Matchchỉ thị. Điều này cho phép bạn chỉ định các khối cấu hình chỉ áp dụng cho một tập hợp con của các kết nối ssh của bạn. Bạn có thể làm một cái gì đó như thế này:

Match Group sudoers
PasswordAuthentication no
ChallengeResponseAuthentication no

Về lý thuyết, bạn có thể hoàn thành một cái gì đó tương tự với cấu hình PAM đơn giản là sẽ thất bại trong nỗ lực xác thực của những người trong sudoersnhóm. Điều này có thể liên quan đến mô-đun pam_succeed_if ... bạn có thể thêm một cái gì đó như thế này vào authcấu hình của mình cho sshd:

auth        requisite     pam_succeed_if.so user notingroup sudoers quiet

Điều này có nghĩa là chỉ những người không trong sudoersnhóm mới có thể xác thực qua PAM. Lưu ý rằng điều này chưa được kiểm tra. Bạn cũng có thể sử dụng mô-đun pam_listfile để làm điều gì đó tương tự.


1
Cảm ơn! Tôi cũng phải lưu ý rằng lệnh Match được giới thiệu trong OpenSSH 5.0. Đối với các bản phân phối bảo thủ như CentOS, nó có thể không có sẵn nguyên bản.
Vua Crend

Điều này phá vỡ OpenSSH 7.7p1 - Tôi đã phải xóa chỉ thị ChallengeResponseAuthentication để khiến nó khởi động lại.
rbsec

2

Một câu trả lời có thể khác, như @larsks, câu trả lời không hoạt động cho phiên bản của ssh_dtôi vì phiên bản của tôi dường như đang sử dụng tài liệu được tìm thấy ở đây có ghi:

Chỉ một tập hợp con các từ khóa có thể được sử dụng trên các dòng theo từ khóa Match. Từ khóa có sẵn là. . .

Danh sách từ khóa đó không bao gồm : ChallengeResponseAuthentication.

Một cách thực sự thú vị mà tôi tìm thấy là sử dụng AuthenticationMethodstrong trường hợp của bạn sẽ hoạt động như vậy:

Match Group sudoers
AuthenticationMethods 'publickey'

AuthenticationMethods lấy một danh sách các giá trị được phân tách bằng dấu phẩy đại diện cho một loạt các phương thức mà người dùng phải vượt qua trước khi truy cập máy chủ.

AuthenticationMethods 'publickey,password' sẽ buộc người dùng vượt qua bằng khóa chung và sau đó là mật khẩu.

Để đọc thêm man sshd_config.

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.