Hạn chế SSHd trên mỗi cơ sở người dùng


9

Tôi cần hạn chế (các) người dùng nhất định để họ chỉ có thể SSH sử dụng khóa ssh và những người dùng khác có thể đăng nhập bằng khóa hoặc mật khẩu.

một ví dụ:

Tôi muốn người dùng root có thể đăng nhập từ xa (thông qua sshd) bằng khóa, vì vậy sẽ không có mật khẩu nào được chấp nhận (ngay cả khi mật khẩu đúng)

và đối với những người dùng khác (mọi người trên hệ thống) họ có thể đăng nhập bằng khóa và / hoặc mật khẩu

Làm thế nào để tôi làm điều đó?

Câu trả lời:


0

Những gì tôi sẽ làm là thiết lập /etc/sshd/sshd_configsao cho:

PermitRootLogin without-password

chỉ để bảo mật hơn và để tránh bị khóa mật khẩu gốc (nó sẽ chỉ cho phép root đăng nhập bằng khóa)

Thay vào đó tôi sẽ sử dụng AllowGroupsthay vì AllowUser, đối với tôi sẽ thuận tiện hơn khi thêm người dùng vào một nhóm hơn là sshd_confignhưng điều đó có thể phụ thuộc vào sở thích cá nhân của bạn.


13

Tôi nghĩ những gì bạn muốn là "Người dùng phù hợp". Bạn sử dụng nó để khớp với tên người dùng, sau đó thụt vào một loạt các cài đặt cấu hình áp dụng riêng cho người dùng đó.

Match User Joe
  PasswordAuthentication no

Match User Jane
  PasswordAuthentication yes

Tôi sử dụng điều này để thiết lập truy cập chroot chỉ đôi khi cho khách hàng.


Lưu ý rằng không phải tất cả các cài đặt có thể được viết trong Matchkhối. Xem man 5 sshd_configđể biết chi tiết.
ynn

2

Thiết lập ssh như sau:

nano /etc/ssh/sshd_config

AllowUsers username1 username2 username3

Khởi động lại SSH

Sau đó cung cấp chìa khóa cho những người bạn muốn tránh sử dụng mật khẩu.

ssh-keygen được sử dụng để tạo cặp khóa đó cho bạn. Đây là phiên mà cặp khóa riêng tư / công khai của riêng bạn được tạo:

#ssh-keygen -t rsa

Lệnh ssh-keygen -t rsa đã khởi xướng việc tạo cặp khóa.

Tôi đã không nhập cụm mật khẩu cho thiết lập của mình (phím Enter được nhấn thay thế).

Khóa riêng đã được lưu trong .ssh / id_rsa. Tập tin này là chỉ đọc và chỉ dành cho bạn. Không ai khác phải xem nội dung của tệp đó, vì nó được sử dụng để giải mã tất cả các thư tín được mã hóa bằng khóa chung.

Khóa công khai được lưu trong .ssh / id_rsa.pub.

Nội dung của nó sau đó được sao chép trong tệp .ssh / ủy quyền của hệ thống mà bạn muốn SSH đến mà không được nhắc nhập mật khẩu.

#scp id_rsa.pub remote system:~/.ssh/authorized_keys

Cuối cùng khóa tài khoản (Xác thực khóa sẽ vẫn có thể.)

# passwd -l username1

đó không phải là những gì tôi đang tìm kiếm. giả sử tôi muốn root chỉ được đăng nhập bằng khóa và những người dùng khác có thể đăng nhập bằng khóa hoặc mật khẩu
alexus

sau đó không khóa tài khoản với passwd -l tên người dùng1
Patrick R
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.