Làm cách nào để sử dụng cả Allowgroup và AllowUsers trong sshd_config?


28

Tôi đang cố gắng sửa đổi /etc/ssh/sshd_configtrên máy chủ debian7 chuyên dụng của mình bằng cả hai AllowUsersAllowGroups. Tuy nhiên tôi dường như không thể làm cho cả hai làm việc cùng nhau.


Cài đặt

  • Có một người dùng được gọi testuser.
  • Người dùng đó nằm trong một nhóm được gọi là ssh-users:

    $ groups testuser
    testuser : testuser ssh-users
    
  • testuserđang cố gắng kết nối thông qua ssh testuser@<server_ip>và nhập mật khẩu của họ.

  • Tôi sshd_configcó thể tìm thấy ở đây: http://pastebin.com/iZvVDFKL - Tôi nghĩ về cơ bản những thay đổi duy nhất tôi đã thực hiện từ mặc định là:
    • để thiết lập PermitRootLogin no
    • và thêm hai người dùng với AllowUsers(tên người dùng thực tế khác nhau trên máy chủ của tôi)
  • service ssh restartđược chạy mỗi lần sau khi sửa đổi sshd_config.

Vấn đề

  • testuser có thể kết nối khi được đặt vớiAllowUsers:

    AllowUsers user1 user2 testuser
    
  • testuserKHÔNG thể kết nối khi cài đặt AllowGroupscho nhóm của nó:

    AllowUsers user1 user2
    AllowGroups ssh-users
    

    Kết quả là Permission denied, please try again.khi testusernhập mật khẩu của họ trong dấu nhắc mật khẩu ssh.


Câu hỏi

  • AllowUsersghi đè AllowGroupskhông?
  • Cách tốt nhất để khắc phục điều này mà không cần thêm tên người dùng theo cách thủ công là AllowUsersgì? Lý tưởng nhất là tôi có thể chỉ cần thêm người dùng vào ssh-usersnhóm trong tương lai mà không cần phải chạm sshd_configlại.

5
Ideally I'd like to be able to just add users to the ssh-users group in the future without having to touch sshd_config again.- Vậy tại sao bạn lại sử dụng AllowUsers? Chỉ cần đặt tất cả mọi người trong nhóm / nhóm.
Zoredache

Câu trả lời:


24

Vâng, AllowUserscó tiền lệ hơn AllowGroups. Nếu được chỉ định, chỉ những người dùng phù hợp với mẫu được chỉ định trong mới AllowUserscó thể kết nối với phiên bản SSHD.

Theo sshd_config trang web :

Các phép / từ chối chỉ thị được xử lý theo trình tự sau: DenyUsers, AllowUsers, DenyGroups, và cuối cùng AllowGroups.

Vì vậy, giải pháp cho vấn đề của bạn có lẽ là sử dụng cái này hay cái kia, có thể là các chỉ thị truy cập nhóm nếu các nhóm là cách ưa thích của bạn để quản lý người dùng.


Vì vậy, sẽ chỉ có AllowGroups user1 user2 ssh-userscông việc? Tôi muốn xác nhận của bạn trước khi kiểm tra nó vì tôi đã có nó xảy ra trước khi tôi vô tình xóa các quyền riêng tư ssh của mình và phải nhờ hỗ trợ để sửa nó. Làm thế nào về Matchkhối? Tôi đang xin lời khuyên ở đó vì mặc dù tôi đã xem trang người đàn ông, tôi không có trực giác / kinh nghiệm để biết nó sẽ hoạt động như thế nào trong thực tế. Ví dụ trình tự xử lý I figured, vì AllowGroups đưa ra sau khi AllowUsers, nó sẽ ghi đè lên nó khi xử lý, nhưng trực giác của tôi đã sai ở đó :)
Johannes

2
Nếu cả 3 trong số đó là các nhóm trên hệ thống của bạn, nó sẽ hoạt động. Nếu user1 và user2 chỉ là người dùng, bạn có thể thêm họ vào người dùng ssh và nhận được bằng cho phép người dùng ssh-ERIC.
Jeff-Inventor ChromeOS

@Johannes khi bạn kiểm tra điều đó, juste hãy chắc chắn rằng bạn đã mở vỏ trên máy. Khởi động lại sshd sẽ không phá vỡ phiên của bạn và nếu bạn không thể mở một cái mới, bạn có thể sửa chữa mớ hỗn độn của mình với cái hiện có.
Jean-Bernard Jansen

6

Câu trả lời của Jeff bao gồm các chi tiết cụ thể của câu hỏi như chi tiết, nhưng tôi thấy câu hỏi này đang tìm cách sử dụng AllowUsersAllowGroupstrong một kịch bản hơi khác. Tôi muốn hạn chế các kết nối đến với người dùng trong một nhóm (ssh) đến từ các mạng con cụ thể.

Các quy tắc kết nối trong sshd_config là một bộ lọc - vì mỗi quy tắc bổ sung được áp dụng, chỉ có thể giảm tập hợp người dùng chấp nhận được. PATTERNStrong ssh_config (5) giải thích hình thức của các quy tắc đó.

Ngoài ra, theo AllowUsersphần sshd_config:

Nếu mẫu có dạng USER @ HOST thì USER và HOST được kiểm tra riêng, hạn chế đăng nhập cho người dùng cụ thể từ các máy chủ cụ thể. Ngoài ra, tiêu chí HOST có thể chứa các địa chỉ phù hợp ở định dạng CIDR / masklen.

AllowGroups không chấp nhận biểu mẫu USER @ HOST.

Vì vậy, để chấp nhận người dùng 1) trong nhóm ssh và 2) từ các mạng con / máy chủ cụ thể:

AllowUsers *@192.168.1.0/24 *@*.example.com *@1.2.3.4
AllowGroups ssh

AllowGroups doesn't accept the USER@HOST form. Không chắc chắn ý của bạn là gì và chắc chắn đây không phải là tệp cấu hình hoặc tài liệu nói. Cho phép Nhóm chắc chắn không cho phép bạn đăng nhập bằng ssh username@example.com.
AndrewD

1
@AndrewD Cho phép Nhóm chỉ chấp nhận tên nhóm - ví dụ: bạn không thể làm AllowGroups ssh@example.com. HOST là nguồn, nơi bạn đang tìm kiếm.
bjacobowski

3

Đây là một giải pháp chúng tôi đã tìm thấy làm việc:

AllowUsers user1 user2
Match group ssh-users
    AllowUsers *
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.