Tôi đang thiết lập máy chủ web chạy Windows Server 2019. Một trong những nhà cung cấp của chúng tôi cần có khả năng tải tệp lên. Tôi có
- Đã thêm sshd
- Tạo thông tin đăng nhập để họ sử dụng
- Đã tạo một nhóm cho thông tin đăng nhập đó
- Đã thêm thông tin đăng nhập đó vào nhóm và xóa thông tin đăng nhập khỏi tất cả các nhóm khác
- Đã tạo một thư mục tải lên
- Cho nhóm Viết và Biến đổi quyền trong thư mục đó
- Đã thêm dòng
ForceCommand internal-sftp -d "C:\inetpub\ftproot\Upload"
đến một Trận đấu chỉ thị cho nhóm đó trong sshd_config
Càng xa càng tốt. Thông tin đăng nhập đó có thể kết nối với hộp qua SFTP và phiên sẽ tự động bắt đầu trong thư mục Tải lên, và nó có thể tải lên và tải xuống các tệp từ đó. Nhưng tôi không thể tìm ra cách ngăn nó nhìn thấy nội dung của các thư mục khác. Chỉ cần xóa thông tin đăng nhập khỏi nhóm người dùng không có tác dụng. Từ chối nhóm Đọc và Danh sách trong bao vây ftproot thư mục dẫn đến việc không thể kết nối (với lỗi xác thực). Đề xuất duy nhất tôi tìm thấy trong một giờ tìm kiếm trên Google là đặt giá trị cho Thư mục Chroot
, nhưng điều đó dẫn đến việc không thể kết nối thông tin đăng nhập bằng SFTP hoặc SSH (với sự cố rõ ràng của dịch vụ để phản hồi). Tôi khá mới với máy chủ Windows và tôi không có ý tưởng. Rõ ràng phải có một cách đúng đắn để làm điều này - ai đó có thể chỉ cho tôi đi đúng hướng không?
[Cập nhật]
Hộp này đang chạy OpenSSH 7.7:
> ssh -V
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
Khi tôi thêm dòng này vào Trận đấu chỉ thị cho nhóm sftp:
ChrootDirectory "C:\inetpub\ftproot\Upload"
và sau đó cố gắng kết nối với tư cách là bất kỳ người dùng nào, cho dù có thuộc nhóm đó hay không, đây là nội dung xuất hiện trong sshd.log (rõ ràng là pid, cổng và dấu thời gian sẽ thay đổi):
3332 2021-08-17 12:04:24.931 Không thể nhập mật khẩu cho người dùng không hợp lệ sftpuser từ cổng XX.XX.XX.XX 34240 ssh2