不久前我迁移了一台服务器,它运行良好,即使是 chrooted SSH 帐户也是如此。然而,客户端刚刚注意到,在这些服务器上 SFTP 不起作用:
Error: Received unexpected end-of-file from SFTP server
Error: Could not connect to server
旧服务器是 debian 7,新服务器是 debian 8,因此我假设 chroot 中的某些二进制文件不再工作(gcc 3 --> 4 问题),但这似乎对 chrooted ssh 来说不是问题,它确实工作正常。我注意到,如果我在 Match bloc 中为用户添加“ForceCommand sftp-internal”,SFTP 就可以正常工作。但这当然会破坏 ssh。用于 SFTP 的子系统是 /usr/lib/openssh/sftp-server,我尝试切换到“sftp-internal”,但没有成功,更糟糕的是,这会破坏非 chrooted 帐户的 sftp。
有什么想法吗?尝试从 SFTP 客户端登录时,在 DEBUG 中运行 sshd 不会输出任何错误。
总结:
SSH into chrooted or non-chrooted accounts : OK
SFTP into non-chrooted account : OK
SFTP into chrooted account : NOK
谢谢
编辑 :
chroot 定义如下:
Match User some_user
ChrootDirectory /ha.0/some_user
该目录包含一个文件系统,其中有所需的一切,bash,一些库......
编辑 2:完成 ssh 配置
Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
#Subsystem sftp sftp-internal
UsePAM yes
AllowUsers ...
AuthorizedKeysFile %h/.ssh/authorized_keys %h/.ssh/authorized_keys2
Match User some_user
ChrootDirectory /ha.0/some_user