我刚刚设置了一个新的 debian sftp 服务器,以便为多个 CHROOTed 用户提供访问权限。虽然我添加的第一个帐户工作正常,但第二个帐户在身份验证后立即断开连接。
sftp -v 输出:
debug1: Authentication succeeded (password).
Authenticated to xxx.xxx.xxx.xxx ([xxx.xxx.xxx.xxx]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
Connection to xxx.xxx.xxx.xxx closed by remote host.
Transferred: sent 2416, received 1376 bytes, in 0.0 seconds
Bytes per second: sent 279797.8, received 159355.1
debug1: Exit status -1
Couldn't read packet: Connection reset by peer
和用户的配置:
Match group joseph
ChrootDirectory /backups/joseph
x11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
CHROOTed 文件夹的 rw 权限为 a+rw 并由 root 拥有。
有任何想法吗?
PS-我还应该补充一点,“子系统 sftp internal-sftp”就在那里。
答案1
看来我在创建用户和组时犯了某种错误这指南。
对我来说实际上是如何工作的:
$useradd <user>
$usermod -d /<folder> -s /bin/false <user>
$chmod 744 /<folder>
- 授予用户对其自己的文件夹进行读/写的权限。
- 允许使用 ssh/sfpt 协议连接
- 在 /etc/ssh/sshd_config 中为每个用户添加了此项:
匹配组
ChrootDirectory /文件夹
x11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp