Thiết lập sftp để sử dụng mật khẩu nhưng ssh không sử dụng mật khẩu


15

Có thể thiết lập người dùng trên ubfox với openssh để ssh không sử dụng xác thực mật khẩu nhưng sftp không?

Tôi giả sử rằng nếu tôi thay đổi /etc/ssh/ssh_configđể có PasswordAuthentication yesđiều này thì người dùng có thể sử dụng mật khẩu để đăng nhập bằng cả ssh và sftp.

Chỉnh sửa: Mục đích của tôi ở đây là để cho một số người dùng sftp bằng mật khẩu thay vì keyfile. Nhưng tôi không muốn người dùng ssh có thể đăng nhập bằng mật khẩu, tôi muốn họ phải sử dụng keyfile. Nếu nó giúp, tôi không cần người dùng sftp để có thể đăng nhập, họ chỉ cần làm sftp.

Câu trả lời:


26

Theo tôi hiểu, bạn có (ít nhất là đối với vấn đề cụ thể này) hai nhóm người dùng riêng biệt , một nhóm có thể đăng nhập qua SSH và nhận được vỏ tương tác (hãy gọi cho nhóm ssh) và một nhóm có thể đăng nhập qua SFTP và chỉ nhận được SFTP shell (hãy gọi nhóm sftp).

Bây giờ, hãy tạo các nhóm sshsftptrên hệ thống của bạn groupadd, đặt người dùng tương ứng vào các nhóm ( gpasswd -a $USERNAME $GROUPNAME) và nối các dòng sau vào cuối ( điều này rất quan trọng! ) Của bạn sshd_configtại /etc/ssh/sshd_config:

Match Group sftp
  PasswordAuthentication yes
  # Further directives for users in the "sftp" group

Match Group ssh
  PasswordAuthentication no
  # Further directives for users in the "ssh" group

Đọc về Matchchỉ thị trong sshd_config (5) và về các mẫu được phép trong ssh_config (5) .

Bạn cũng sẽ phải khởi động lại sshquá trình để điều này có hiệu lực:

sudo /etc/init.d/ssh restart


6
Điều này không được ghi chép tốt, nhưng chỉ một lệnh Match sẽ được sử dụng; bạn nên đặt chỉ thị cụ thể nhất lên hàng đầu. Nếu bạn liệt kê sftp trước, người dùng thuộc cả hai nhóm sẽ được phép Mật khẩu xác thực.
Tobu

Cảm ơn! Đã có một sshnhóm trên các hộp ubfox của tôi, vì vậy tôi thực sự chỉ cần thêm sftpvà đưa người dùng sftp vào nhóm đó. Tôi sẽ kết hợp câu trả lời của bạn với việc sử dụng scponlyđể giữ cho người dùng sftp từ đăng nhập.
dar

2
Nếu PasswordAuthenticationđược thiết lập để notiếp tục, điều này vẫn còn hoạt động? Có Match Groupghi đè nó cho người dùng sftp? Bởi vì đó là những gì tôi có và nó không hoạt động. Tôi có thể nhập bằng khóa, nhưng không thể là người dùng sftp.
alphadogg

0

Không, và tôi không thấy điều này sẽ cải thiện an ninh như thế nào, vậy vấn đề sẽ là gì?

ủy quyền có thể cho phép các lệnh khác nhau cho các khóa khác nhau, nếu đó là những gì bạn đang theo đuổi. Mặt khác, bạn có tùy chọn tạo một số tài khoản và sử dụng acls hoặc sudo.


Tôi không cố gắng cải thiện an ninh. Tôi đang cố gắng giúp một số người dùng sử dụng mật khẩu dễ dàng hơn thay vì keyfile để truy cập sftp. Tuy nhiên, tôi không muốn ai sử dụng mật khẩu để truy cập ssh.
dar

@dar OK; Tài khoản khác nhau rồi. Nếu chúng là cùng một tài khoản, ai đó biết mật khẩu sftp có thể ghi đè lên một số tệp hồ sơ (.ssh / rc, .profile, .bashrc,) và nhận được các đặc quyền giống như ai đó biết khóa riêng.
Tobu

0

Thực hiện một cú đâm trong bóng tối ở đây, nhưng bạn có thể thấy chủ đề này thú vị.

Có công bằng khi tống giam người dùng SFTP của tôi vào thư mục nhà của họ không?


Tôi không thấy bất cứ điều gì trong đó về Mật khẩu xác thực, hãy sửa tôi nếu tôi sai.
dar

Không, bạn đã đúng. Không rõ bạn muốn làm gì với SFTP vs SSH. Tôi thấy từ các bình luận khác rằng bạn muốn người dùng sử dụng mật khẩu cho SFTP nhưng không phải cho SSH. Tại sao?
Tyler K

Bởi vì những người dùng cần sử dụng sftp tìm thấy các keyfiles đầy thách thức, nhưng họ hiểu cách nhập mật khẩu. Nó hiểu rõ vấn đề về trải nghiệm người dùng đối với sftp. Nhưng tôi muốn giảm thiểu diện tích bề mặt tấn công bằng cách giữ mật khẩu khỏi hỗn hợp ssh.
dar

SFTP hoạt động bằng cách trước tiên mở một đường hầm ssh, sau đó truyền tệp qua FTP. Bạn thực sự không thể ly dị hai người. Tôi đoán bạn có thể bằng cách thiết lập một số ACL, nhưng điều đó không thực sự có ý nghĩa.
Tyler K
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.