Hạn chế truy cập SSH dựa trên mật khẩu cho mỗi người dùng nhưng cho phép xác thực khóa


21

Có thể vô hiệu hóa quyền truy cập PASSWORD SSH cho người dùng nhưng cho phép xác thực Khóa trên cơ sở mỗi người dùng không? Ý tôi là, tôi có một người dùng mà tôi không muốn cấp quyền truy cập dựa trên Mật khẩu NHƯNG tôi sẽ không chỉ sử dụng xác thực khóa để truy cập (các) máy chủ. Cảm ơn


Câu trả lời:


49

Bạn có thể thêm các phần "Khớp" để khớp với những người dùng hoặc nhóm cụ thể ở cuối sshd_config, như:

Match user stew
PasswordAuthentication no

hoặc là

Match group dumbusers
PasswordAuthentication no

9
Tôi sẽ tránh thụt lề vì nó gợi ý rằng chỉ các dòng thụt lề bị ảnh hưởng bởi Matchkhi trong thực tế, tất cả cấu hình bị ảnh hưởng cho đến lệnh tiếp theo Match. Có thể gây nhầm lẫn cho một người không quen thuộc với cú pháp.
Michael Mior

2
@MichaelMior có cách nào để "EndMatch" không?
Nick T

4
@NickT Matchhoạt động cho đến khi tiếp theo Matchhoặc Hosttừ khóa. Bạn chỉ có thể sử dụng Match user *.
Michael Mior

@MichaelMior Điều này có nghĩa là nếu bạn sử dụng Match user ZaQwEdCxS, bạn có thể kết xuất một tập hợp các dòng cấu hình mà không ai có thể sử dụng tạm thời hoặc vĩnh viễn?
Động học Tripp

Điều đó có nghĩa là tất cả các dòng cấu hình sau đó sẽ chỉ áp dụng cho người dùng có tên ZaQwEdCxS. Nếu bạn có một câu hỏi khác, bạn nên hỏi một câu hỏi mới.
Michael Mior

4

Chỉ cần khóa mật khẩu của người dùng mà bạn không muốn đăng nhập bằng mật khẩu:

usermod -L <user>

Sau đó, đặt khóa công khai hợp lệ vào .ssh/authorized_keystệp của họ và họ sẽ chỉ có thể đăng nhập bằng khóa riêng tương ứng chứ không phải bằng mật khẩu.

Lưu ý: Điều này sẽ phá vỡ sudo trừ khi người dùng có NOPASSWD: trong mục nhập visudo của họ


8
Điều đó cũng sẽ phá vỡ sudo. Có lẽ không phải là một vấn đề trong trường hợp này, nhưng nó đề cập đến.
EEAA

Đúng là như vậy. Tôi nên đã đề cập đến nó.
Oliver

1
Một số thiết lập OpenSSH (ví dụ: tôi nghĩ Ubuntu 14.04 trong cấu hình mặc định) không cho phép người dùng bị khóa, thậm chí không được ủy quyền
Nils Toedtmann

@NilsToedtmann bạn có thể trích dẫn một nguồn để xác minh? Điều này sẽ rất quan trọng để lưu ý trong câu trả lời, nếu có.
Nhà siêu âm

-3

bạn nên nhìn vào

/etc/ssh/sshd_config

Tôi nghĩ những gì bạn đang tìm kiếm là

PasswordAuthentication yes

thay đổi nó thành không và đừng quên khởi động lại sshd


2
Tôi biết điều này - đây là cài đặt TOÀN CẦU - Tôi muốn tùy chọn chi tiết hơn - đó là lý do tại sao tôi nói "cơ sở cho mỗi người dùng" - Tôi chỉ muốn điều này cho một số người dùng (được sử dụng để liên lạc nội bộ giữa các máy chủ trong cụm) - không dành cho tất cả người dùng
gyre

ồ đúng rồi, tôi xin lỗi tôi đã không đọc chính xác thì những gì @stew khuyên là nên đi
alexus
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.