Quyền SSH và thư mục nhà


53

Tôi đã mất nhiều giờ để giải quyết vấn đề SSH này với một trong những tài khoản lớp học trên máy chủ của trường tôi.

Tôi không thể ssh vào một tài khoản lớp cụ thể mà không nhập mật khẩu, trong khi xác thực không mật khẩu hoạt động với các tài khoản lớp khác của tôi. Thư mục .ssh / và tất cả nội dung của nó có cùng quyền, đúng như các tài khoản lớp khác.

Hóa ra vấn đề là các quyền được thiết lập trên thư mục nhà của riêng tôi. Xác thực không mật khẩu không hoạt động khi các quyền trên thư mục HOME của tôi được đặt thành 770 (bất kể các quyền được đặt cho .ssh /), nhưng nó hoạt động với các quyền được đặt thành 755 hoặc 700.

Bất cứ ai cũng biết tại sao SSH làm điều này? Có phải vì các quyền của thư mục nhà quá dễ dãi? Tại sao SSH từ chối xác thực bằng khóa chung / riêng khi thư mục chính được đặt dễ dàng hơn 700?


1
Khẳng định câu trả lời dưới đây; vấn đề là các quyền của nhóm trên thư mục chính đã được đặt không chính xác (thông báo lỗi từ auth.log là: 'Xác thực bị từ chối: quyền sở hữu hoặc chế độ xấu cho thư mục / home / <user>'). Tôi thấy SSH là đúng để kén chọn về quyền truy cập thư mục nhà.
action_potato

5
Bạn có biết về các wiki thẻ chúng tôi có ở đây? Nếu bạn nhấp vào ssh và sau đó learn more, bạn sẽ thấy một danh sách kiểm tra những việc cần làm khi SSH không hoạt động và nó đề cập đến các quyền của thư mục chính.
Gilles 'SO- ngừng trở nên xấu xa'

À, xin lỗi tôi không biết về điều đó! Cảm ơn cho những người đứng đầu lên.
action_potato

Câu trả lời:


54

Đây là hành vi mặc định cho SSH. Nó bảo vệ phím người dùng bằng cách thực thi rwx------trên $HOME/.sshvà đảm bảo chỉ chủ sở hữu có quyền ghi vào $HOME. Nếu người dùng không phải là chủ sở hữu tương ứng có quyền ghi trên $HOMEthư mục, họ có thể sửa đổi độc hại các quyền trên $HOME/.ssh, có khả năng chiếm quyền điều khiển khóa người dùng known_hostshoặc một cái gì đó tương tự. Tóm lại, các quyền sau đây $HOMEsẽ đủ để SSH hoạt động.

  • rwx------
  • rwxr-x---
  • rwxr-xr-x

SSH sẽ không hoạt động chính xác và sẽ gửi cảnh báo đến các cơ sở nhật ký nếu có bất kỳ biến thể nào g+whoặc o+wtồn tại trên $HOMEthư mục. Tuy nhiên, quản trị viên có thể ghi đè hành vi này bằng cách xác định StrictModes notrong sshd_configtệp cấu hình (hoặc tương tự), mặc dù vậy rõ ràng rằng điều này không được khuyến nghị .


1
Cảm ơn đã đề cập StrictModes no. Trong thiết lập của tôi, một ACL được cấu hình trên thư mục nhà của người dùng đích và tất cả các hậu duệ để cho phép sửa đổi bởi một người dùng đặc quyền ( u:operator:rwx) và SSH không thích điều này.
intelfx

31

77x trên thư mục chính của bạn có nghĩa là mọi người có GID chính xác có thể di chuyển thư mục .ssh của bạn và thay thế nó bằng một thư mục khác. Người dùng có GID chính xác có quyền ghi / thực thi trên thư mục chính và do đó có thể đổi tên / tạo tệp / thư mục.

SSH rất kén chọn khi có quyền, và nó nên như vậy.

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.