Tôi đang chạy Debian ổn định và tôi đang tìm cách thiết lập môi trường sau cho những người dùng trong nhóm 'sftponly' của tôi:
- bỏ tù
- có thể chuyển bằng SFTP
- có thể chuyển với SCP
- không thể đăng nhập tương tác với SSH
Từ thử nghiệm và nghiên cứu của tôi, có vẻ như các khổ thơ sau trong sshd_config đưa tôi đến 90% ở đó:
Match group sftponly
ChrootDirectory /sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Điều này mang lại cho tôi SFTP bị bỏ tù và không có SSH, điều này là tốt. Nhưng nó cũng vô hiệu hóa SCP, điều này không lý tưởng vì khá nhiều khách hàng là di sản, các quy trình được sử dụng theo kịch bản sử dụng SCP thay vì SFTP (máy chủ chúng tôi thay thế cả hai giao thức) và vì các máy khách đó không thuộc quyền kiểm soát của chúng tôi và dễ dàng đã sửa đổi, có thể không thực tế để vô hiệu hóa SCP hoàn toàn.
Điều hợp lý là cấu hình này sẽ vô hiệu hóa SCP, vì các kết nối SCP đến khiến sshd sinh ra một quá trình 'scp' thông qua vỏ đăng nhập của người dùng, với tư cách là người dùng đó. Có vẻ như điều tương tự thường đúng với SFTP, phải không đối với trình xử lý 'nội bộ sftp' đặc biệt.
Vì vậy, tôi cho rằng câu hỏi của tôi là: có cách nào để đạt được hiệu quả tương tự như 'nội bộ' nhưng đối với SCP, mà không cần sử dụng các công cụ của bên thứ ba như scponly và rssh? Điều thực sự thú vị về 'nội bộ' là nó không yêu cầu thiết lập một nhà tù với các tệp hỗ trợ hoặc xử lý các tệp nhị phân của bên thứ ba có khả năng khai thác (đặc biệt là rssh, có lịch sử khai thác).